输入和输出
输出 print() -- () 内是字符串的话直接输出,()内可以进行数据计算,()内遇到,会输出一个空格
print("hello world","hello my friend) --> hello world hello my friend
输入 input() -- 交互界面输入参数
数据类型
包含数据类型:整数、浮点数、字符串、布尔值、空值、变量、常量
除法-- 结果为浮点数,//地板除-取其结果的整数,% 取余-取其结果的余数
字符串和编码
以Unicode表示的str通过encode()方法可以编码为指定的bytes,此方式可用在讲文件写入内存过程中
-- 例:'ABC'.encode('ascii'); ‘中文’.encode('utf-8')
如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法 ; 如果utf-8部分字节码损坏无法解码,可以忽略
--例b'ABC'.decode('ascii'); ' b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'); b'\xe4\xb8\xad\xff'.decode('utf-8',errors='ignore')
计算包含多少个字符: len()
格式化
%用来格式化字符串,子字符串内部 %s-格式化字符串,%d - 格式化整数,%f - 格式化浮点数,%x - 格式化十六进制数
%% -- 转义格式化字符串 print('比例为 %f %%' % 3.4)
format() -- 用传入的参数一次替换字符串内的占位符 {0}、{1}……
--例 ‘hello ,{0} 今年 {1} 岁了’.format('小明',10)
print('%.2f' % 3.1415926) -- 取两位小数
使用list和tuple
list - 数组
list = ['a','b','d','c']
list.insert(1,'m') --> ['a','m','b','d','c']
list.append('e') -->['a','m','b','d','c' ,'e']
list.pop() --> [ 'a','m','b','d','c' ]
list.pop(1) -->['a','b','d','c' ]
list2 = [1,2,True,list] --> 二维数组 list2[3][2] --> 'd'
tuple - 元组
tuple1 = ('Michael', 'Bob', 'Tracy') -- 元组不可修改
条件判断
if 判断条件 :
action
elif 判断条件:
action
else:
action
循环
for循环
for x in list:
action
while 循环
while 判断条件:
action -- 满足条件则action
退出循环:
break 退出循环
continue 退出当前循环进入下一次循环
dict 和 set
使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串
切片
L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素
L[:] 可以原样复制一个list
L[::5] 每五个元素取一个
迭代
通过for循环遍历对象,这种遍历称为迭代
dict 对象:默认迭代的是 key ; 若想迭代value则:for value in dict.values(); 若想同时迭代key 和 value则: for key, value in dict.items()
判断是否可迭代:通过collection模块的Iterable判断:isinstance('acdg', Iterable)
enumerate函数可以把一个list变成索引-元素对 : for i, value in enumrate(list)
列表生成- for循环与列表的综合用法
[表达式 for ] [表达式 for + for ] [表达式 for + 判断] --- 生成新的list数据
例: [x * x for x in range(1 11) if x % 2 == 0]
生成器
generator -- 这种一边循环一边计算的机制,生成器
创建生成器的方法:
1.将列表生成式的[] 改成 () -- (x * x for x in range(10))
2.函数定义中包含yield关键字
for fib(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a+b
n = n+1
return 'done'