python学习基础之 字符串操作 和 I/O操作 以及条件与循环
2019-06-15 13:37
731 查看
字符串
字符串的声明
s1= ‘hello’
s2 = “hello”
s3 = “”“hello”""
print(s1s2s3) # True
字符串操作 切片 替换
- 索引
print(s1[0]) # h
- 切片
print(s1[1:3]) # el
- 替换
s = s.replace('h', 'H') # 此时创建了一个新的字符串
- 拼接
s2 += s1 等同于 s2 = s2 + s1
- 遍历
for s in s1: # 像数组一样进行遍历 print(s)
- 格式化字符串 常用于日志输出
s = 'today weather is {} today is {}'.format('sunday', 'wonday') print (s) # today weather is sunday today is wonday
- 字符串拼接性能比较
t1 = time.perf_counter() s = '' for i in range(0,1000000): s += str(i) t2 = time.perf_counter() print ('方式一耗费时间 {}'.format(t2-t1)) # 0.4358797559980303 t1 = time.perf_counter() s = [] for i in range(0,1000000): s.append(str(i)) s1 = ''.join(s) t2 = time.perf_counter() print ('方式二耗费时间 {}'.format(t2-t1)) # 0.37377301102969795 t1 = time.perf_counter() s1 = ''.join(map(str, range(0, 1000000))) t2 = time.perf_counter() print ('方式三耗费时间 {}'.format(t2-t1)) # 0.2560606470797211
以上可以看出 方式3的性能最优 但是1和2 其实也很快了 在python2.5 版本以后 在拼接字符串方面 python 会检测当前字符串有没有其他的引用,如果没有就直接扩充字符串buffer的容量 不用再重新创建一个。所以以后可以放心使用。
I/O操作
这里只说最简单的也是用到最多 最方便的 with 语法 下面写一个具体的例子 对应的github 地址https://github.com/everyStudyNow/ml_learning.git
words = {} with open('./test.txt', 'r') as f: # 这种方式打开文件不需要考虑 关闭 更方便 lines = f.readlines() # 读出所有行 for line in lines: if line != '': ls = line.split(' ') for w in ls: if w not in words: words[w] = 1 else: words[w] += 1 # 统计词频 sort_words = sorted(words.items(), key=lambda kv:kv[1], reverse=True) print (sort_words) with open('./test1.txt','w') as f: # 文件权限 for k,v in sort_words: f.write('{} {}\n'.format(k, v))
以上代码的执行结果就是对 test文件做词频统计 读写文件的方法很多 为什么这里只讲with语句 因为with语句不用考虑文件的关闭 用起来方便 如果考虑到性能问题 比如大文件的读入 可以使用生成器的方法来做,以后会讲。
JSON 序列化
主要用到两个函数 json.dumps()转换成json字符串 json.loads() 转化成json对象
params = { 'symbol': '123456', 'type': 'limit', 'price': 123.4, 'amount': 23 } s = json.dumps(params) print (type(s)) # <class 'str'> s = json.loads(s) print (type(s)) # <class 'dict'>
和文件结合使用 可以实现json字符串的直接写入
s = json.dumps(params) print (type(s)) s = json.loads(s) print (type(s)) with open('params.json', 'w') as fout: params_str = json.dump(params, fout) with open('params.json', 'r') as fin: original_params = json.load(fin) print('after json deserialization') print('type of original_params = {}, original_params = {}'.format(type(original_params), original_params))
条件与循环
这里列举常用的if else 以及 列表 字典的遍历 和 break 和 continue关键字
if else 在列表和字典中的使用
- 列表
t = [2,3,4,1,5] for i in t: print(i) # 2 3 4 1 5
- 字典
t_dic = {'name':'晨光','age':18,'sex':'男'} for t in t_dic: print(t) #name age sex 只遍历出键 for t in t_dic.values(): print(t) # 晨光 18 男 只遍历出值 for k,v in t_dic.items(): print(k,v) # 键值一起遍历出 # name 晨光 # age 18 # sex 男 使用 in 可以判断出相应的键值在不在字典中 print('name' in t_dic) # True print('test' in t_dic) # False print(18 in t_dic.values()) # True
- break && continue
t = [2,3,4,1,5] for i in t: if i == 3: break print(i) # 2 print() for i in t: if i == 3: continue print(i) # 2 4 1 5 print() break 是 当条件满足时 跳出当前循环 continue 是 当条件满足时 跳过当前判断的循环 注意都是跳过
总结
学编程基础一定要打牢固 可以避免很多低级错误
相关文章推荐
- python基础学习之——条件判断和循环
- python学习(基础补充)--字典、条件语句、循环
- Python基础语法学习----列表的访问,操作以及列表函数
- Python基础语法学习--元祖和字典以及相关操作和方法
- python学习笔记day3:字符串以及字符串操作
- shell基础学习中的字符串操作、for循环语句示例
- Python基础学习三 条件判断和循环
- python基础学习6----字符串操作
- Python基础学习代码之条件和循环
- Python教程学习简记1--Python数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set
- [Python学习] 专题二.条件语句和循环语句的基础知识
- <<Python基础教程>>学习笔记 | 第05章 | 条件、循环和其他语句
- python基础教程学习笔记---(5)条件、循环和其他语句
- Python新手学习基础之条件语句——While循环
- [Python学习] 专题二.条件语句和循环语句的基础知识
- Python基础语法学习--条件控制与循环语句
- Python 3.6 学习--基础7:循环技术,更多关于条件,比较序列和其他类型
- python基础总结二:判断语句、循环语句、字符串遍历、以及列表、元组、字典的简单使用 。
- python学习笔记之基础操作(二)字符串操作(2)
- Python3学习笔记【基础3--list,tuple,if条件判断,for/while循环,dict字典,set集合】