一.if语句
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
1.每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块
2.使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块
3.在Python中没有switch – case语句
4.条件:(1)检查是否相等: ==;(2)检查是否不相等:!=;(3)比较数字:==,<=,>=;(4)布尔表达式: True ; False
(5)检查多个条件 : 1.条件一and条件二(同时满足);2.条件一or条件二(至少一个满足)
(6)检查特定值是否包含在列表中:1.特定值 in 列表 ;2.特定值 not in 列表
5.三元运算
1 #比较两数,输出最大的值 2 a=int(input(‘数字A:‘)) 3 b=int(input(‘数字b:‘)) 4 c=a if a>b else b 5 print(c) 6 ------------------------------ 7 数字A:14 8 数字b:41 9 41
if...else...
1 #比较三数,输出最大的值 2 a=int(input(‘数字A:‘)) 3 b=int(input(‘数字b:‘)) 4 c=int(input(‘数字c:‘)) 5 d=(a if a>b else b) if(a if a>b else b) else c 6 print(d) 7 ---------------------------------------------------- 8 数字A:124 9 数字b:121 10 数字c:21 11 124
三数最大值
二.while循环
while 判断条件:
语句
1.注意冒号和缩进
2.Python中没有do..while循环
3.可以通过设置条件表达式永远不为 false 来实现无限循环,可以使用 CTRL+C 来退出当前的无限循环
4.使用标志
1 #定义一个变量作为标志,用于判断整个程序是否属于活动状态 2 active=True 3 while active: 4 message=input() 5 if message == ‘quit‘: 6 active=False 7 else: 8 print(message) 9 --------------------------------------------------- 10 d 11 d 12 33 13 33 14 quit
标志
三.else语句
1.如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句
2.如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行!
3.if语句中当不满足当前条件时,从而执行下一条else语句
四.for语句
for <variable> in <sequence>:
< statements>
else:
<statements>
1.for循环可以遍历任何序列的项目,如一个列表或者一个字符串
五.break和continue语句及循环中的else子句
1.break 语句可以跳出 for 和 while 的循环体
2.从 for 或 while 循环中终止,任何对应的循环 else 块将不执行
3.continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环
4.循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行
六.pass语句
1.pass是空语句,是为了保持程序结构的完整性
2.pass 不做任何事情,一般用做占位语句
七.输入输出语句
1.2.x中print (空格)"变量名";3.7中print("变量名")
2.print()输出函数
1 #print(self, *args, sep=‘ ‘, end=‘\n‘, file=None) 2 # ? *args:表示任何多个无名参数,它是一个tuple; 3 # ? sep:指定输出的多个参数之间的间隔符,默认是一个空格; 4 # ? end:指定最后一个参数输出之后输出的字符,默认是换行符。 5 print(2,3,4,5) 6 print(2,3,4,5,sep=‘+‘,end=‘\r\n‘) 7 ---------------------------------------------------------------------- 8 2 3 4 5 9 2+3+4+5
print()
3.将输出的值转成字符串: repr() 或 str()
(1).str(): 函数返回一个用户易读的表达形式
(2).repr(): 产生一个解释器易读的表达形式
1 s="hello,world" 2 print(str(s)) 3 print(repr(s)) 4 a=‘hello world\n‘ 5 print(a) 6 print(repr(a)) # repr() 函数可以转义字符串中的特殊字符 7 print(str(a)) 8 print(repr((s,a,(‘glle‘,‘runs‘))))#repr(一个参数),参数可以是 Python 的任何对象 9 ----------------------------------------------------------------------------------------- 10 hello,world 11 ‘hello,world‘ 12 hello world 13 14 ‘hello world\n‘ 15 hello world 16 17 (‘hello,world‘, ‘hello world\n‘, (‘glle‘, ‘runs‘))
str()和repr()
4.使用 str.format() 函数来格式化输出值,使输出的形式更加多样
1 # print(‘{}{}‘.format(‘‘,‘‘))括号及其里面的字符(称作格式化字段)将会被format()中的参数替换 2 # 在括号中的数字用于指向传入对象在 format() 中的位置 3 print(‘{0} 和 {1}‘.format(‘Google‘, ‘Runoob‘)) 4 print(‘{1} 和 {0}‘.format(‘Google‘, ‘Runoob‘)) 5 6 7 # 如果在 format() 中使用了关键字参数, 那么它们的值会指向使用该名字的参数 8 print(‘{name}名字: {old}‘.format(name=‘小明‘, old=‘18‘)) 9 10 11 # 位置及关键字参数可以任意的结合 12 print(‘站点列表 {0}, {1}, 和 {other}。‘.format(‘Google‘, ‘Runoob‘, other=‘Taobao‘)) 13 14 15 # ‘!a‘ (使用 ascii()), 16 # ‘!s‘ (使用 str()) 17 # ‘!r‘ (使用 repr()) 18 # 可以用于在格式化某个值之前对其进行转化 19 import math 20 print(‘常量 PI 的值近似为: {}。‘.format(math.pi)) 21 print(‘常量 PI 的值近似为: {!a}。‘.format(math.pi)) 22 23 # 可选项 ‘:‘ 和格式标识符可以跟着字段名。在 ‘:‘ 后传入一个整数, 可以保证该域至少有这么多的宽度 24 print(‘常量 PI 的值近似为 {0:.3f}。‘.format(math.pi))#float保留3位小数 25 print(‘{0:10}---{1:10d}‘.format(‘ta‘,4))#至少有10的宽度 26 27 # 如果你有一个很长的格式化字符串, 而你不想将它们分开, 那么在格式化时通过变量名而非位置会是很好的事情。 28 # 最简单的就是传入一个字典, 然后使用方括号 ‘[]‘ 来访问键值 29 table = {‘Google‘: 1, ‘Runoob‘: 2, ‘Taobao‘: 3} 30 print(‘Runoob: {0[Runoob]}; Google: {0[Google]:d}; Taobao: {0[Taobao]:d}‘.format(table)) 31 print(‘Runoob: {Runoob:d}; Google: {Google:d}; Taobao: {Taobao:d}‘.format(**table)) 32 #也可以通过在 table 变量前使用 ‘**‘ 来实现相同的功能 33 --------------------------------------------------------------------------------------- 34 Google 和 Runoob 35 Runoob 和 Google 36 小明名字: 18 37 站点列表 Google, Runoob, 和 Taobao。 38 常量 PI 的值近似为: 3.141592653589793。 39 常量 PI 的值近似为: 3.141592653589793。 40 常量 PI 的值近似为 3.142。 41 ta --- 4 42 Runoob: 2; Google: 1; Taobao: 3 43 Runoob: 2; Google: 1; Taobao: 3
str.format()
1 print(‘{2:10s}{0:10d}{1:10f}‘.format(33,11,‘22‘)) 2 print(‘{2:^10s}{0:<10d}{1:>10f}‘.format(33,11,‘22‘)) 3 #域宽为10 s,d,f表示字符串,整型,浮点型 4 #<,>,^分别左对齐,右对齐,居中 5 ------------------------------------------------------------------------- 6 22 33 11.000000 7 22 33 11.000000
补充
5.% 操作符也可以实现字符串格式化
6.input()函数读取键盘输入
Python2中raw_input将用户输入的内容当做‘字符串’,传递给接受的变量,input会将用户输入的内容当做‘代码’进行处理,input=raw_input+eval
python3中只有input相当于python2中的raw_input,可以用eval函数实现python2中的input功能
1 #input(*args, **kwargs) 2 #kwargs:表示关键字参数,它是一个dict 3 # input() 置函数从标准输入读入一行文本,默认的标准输入是键盘 4 #input 可以接收一个Python表达式作为输入,并将运算结果返回 5 #使用input时,python将用户输入解读为字符串,可用int()来获取数值输入 6 print(input(‘name:‘)) 7 a=input("old:") 8 print(a) 9 print(type(a)) 10 b=int(a) 11 print(b) 12 print(type(b)) 13 ---------------------------------------------------------------------- 14 name:alex 15 alex 16 old:16 17 16 18 <class ‘str‘> 19 16 20 <class ‘int‘>
input()
*input和split读取多个输入
1 n1,n2=input(‘shuru1: ‘).split(‘#‘)#输入两个字符串,以#表示分隔 2 n3,n4,n5=input(‘shuru2:‘).split()##输入三个字符串,默认以空格表示分隔 3 s1=int(n1)+int(n2) 4 print(s1) 5 s2=int(n1)+int(n3)-int(n5)+int(n4) 6 print(s2) 7 -------------------------------------------------------- 8 shuru1: 12#655 9 shuru2:231 33 23 10 667 11 253
split
八.迭代器iterator
1.迭代是指重复反馈过程的活动,目的是为了接近并达到所需的目标或结果。每一次的过程的重复被称为一次迭代,所得到的结果会被用来作为下一次迭代的初始值。
2.迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器也是可迭代对象,也可作用于for in
3.迭代器是一个可以记住遍历的位置的对象。
4.迭代器只能往后,不能往前;迭代器一般不能多次迭代;取完之后再取元素会报错
5.迭代器适合用于遍历一些巨大或无限的集合,仅仅在迭代到某个元素时才处理该元素
6.迭代器有两个基本的方法:iter()(把可迭代对象转换成迭代器进行使用) 和 next()(遍历)。
1 list=[1,2,34,3,4,‘32‘,‘als‘] 2 it=iter(list) # 创建迭代器对象,字符串,列表或元组对象都可用于创建迭代器 3 print(next(it)) # 输出迭代器的下一个元素 4 print(next(it)) # 输出迭代器的下一个元素, 5 # 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。 6 # 迭代器中访问完一个少一个,迭代器没有len 7 for x in it: #迭代器对象可以使用常规for语句进行遍历 8 print(x) #迭代器只能往前不会后退 9 -------------------------------------------------------------- 10 1 11 2 12 34 13 3 14 4 15 32 16 als
iter()和next()
九.生成器generator
1.在 Python 中,使用了 yield 的函数被称为生成器(generator)函数,这个函数的执行结果就是生成器
2.跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个特殊的迭代器。
3.在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
1 def test(): 2 print(‘xxx‘) 3 yield 1 4 print(‘a‘) 5 yield 2 6 print(‘b‘) 7 yield 3 8 print(‘c‘) 9 yield 7 10 print(‘d‘) 11 12 g=test() 13 print(g)#<generator object test at 0x02DEE900> 14 15 print(next(g))#xxx 1 16 print(next(g))#a 2 17 ---------------------------------------------------------------- 18 <generator object test at 0x0568E900> 19 xxx 20 1 21 a 22 2
yield
4.调用一个生成器函数,返回的是一个迭代器对象。
1 #如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator 2 import sys 3 def fibonacci(n): # 生成器函数 - 斐波那契 4 a, b, counter = 0, 1, 0 5 while True: 6 if (counter > n): 7 return 8 yield a 9 a, b = b, a + b 10 counter += 1 11 f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 12 while True: 13 try: 14 print (next(f), end=" ") 15 except StopIteration: 16 sys.exit() 17 ------------------------------------------------------------------- 18 0 1 1 2 3 5 8 13 21 34 55
5.生成器表达式创建方式:把列表推导式的[]修改为()
1 l=(i for i in range(1,10)if i%2==0) 2 l2=[i for i in range(1,10)if i%2==0] 3 4 print(l) 5 print(l2) 6 ---------------------------------------- 7 <generator object <genexpr> at 0x0573E900> 8 [2, 4, 6, 8]
生成器表达式创建
6.生成器的send()方法
1 #send方法有一个参数,指定的是上一次被挂起的yeild语句的返回值 2 #相比于.__next__(),可以额外的给yield语句传值 3 #注意第一次调用 t.send(None) 4 5 def test(): 6 print(‘xx‘) 7 res1=yield 1#‘ooo‘ 8 print(res1) 9 10 res2=yield 2 11 print(res2) 12 13 g=test() 14 15 print(g.__next__())#调用.__next__()方法时,执行函数xx 1 16 # print(g.__next__())#调用.__next__()方法时,执行函数None 2 17 print(g.send(‘ooo‘))#调用send方法,给上次的yeild指定返回值ooo 2 18 ------------------------------------------------------------- 19 xx 20 1 21 ooo 22 2
send()
7.关闭生成器.close()方法
1 def test(): 2 print(‘xxx‘) 3 yield 1 4 print(‘a‘) 5 yield 2 6 print(‘b‘) 7 yield 3 8 print(‘c‘) 9 g=test() 10 print(g.__next__()) 11 g.close()#关闭生成器,无法再访问 12 # print(g.__next__())异常StopIteration 13 ---------------------------------------------------- 14 xxx 15 1
.close
8.如果碰到return,会直接终止,抛出StopIteration异常提示,生成器只会遍历一次
十.补充
1.assert关键字
1 #assert断言 2 #当关键字后面的条件为假时,程序自动崩溃并抛出AssertionError的异常 3 #关键字后面的条件为真时,自动忽略 4 assert 3>4 5 #一般来说,我们可以用它在程序中置入检查点 6 #当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就很有用 7 --------------------------------------------------------------------------------------- 8 Traceback (most recent call last): 9 File "E:/python_work/example/2018.4.2.py", line 21, in <module> 10 assert 3>4 11 AssertionError
assert
2.可迭代对象iterable:list,dict,set,str,generator(生成器),iterator(迭代器)
3.可迭代对象都可用for来遍历
原文地址:https://www.cnblogs.com/yu-liang/p/8570167.html