条件控制
if
if 结果为bool值的语句:
【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行
…
#可以是pass
例:
mood = true
if mood :
print('go to left')
print('back away')
if else
if 结果为bool值的语句:
【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行
…
#可以是pass
else:
【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行
…
例:
mood = true
if mood:
print('go to left')
print('back away')
else:
print('go to right ')
示例:
'''
每个模块前应该有一段描写模块意义的文字
常量(constant)固定不变,应该大写,
'''
ACCOUNT = 'qiyue'
PASSWORD = '123456'
'''
input()函数 是收取输入值的函数
python推荐命名空格使用_替代
'''
print('please input account')
user_account = input()
print('please input password')
user_password = input()
'''
:前不应该加空格
运算符左右应该加空格
'''
if (user_account == ACCOUNT) and (user_password == PASSWORD):
print('success')
else:
print('fail')
对于程序嵌套,应该尽量避免,转而使用函数或者elif和字典等,编程习惯
elif
示例:
#此示例中,多层嵌套,引入:elif=else+if
a = input()
a = int(a)
if a == 1:
print('apple')
else:
if a == 2:
print('banana')
else:
if a == 3:
print('orange')
else:
print('shopping')
示例:
引入:elif=else+if,elif必须和if配对使用
在python里面没有switch
也可以选择字典解决
a = input()
a = int(a)
if a == 1:
print('apple')
elif a == 2:
print('banana')
elif a == 3:
print('orange')
else:
print('shopping')
vscode快捷键:ctrl+C可以强制停止一个程序(特别是无限循环时)
循环控制
while
while 结果为bool值的语句:
【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行
…
可以是pass
在递归中适合使用while
while非常容易造成死循环
示例:
当while执行一遍后将继续判断a是否还是true,如果是,将执行下一遍,造成死循环
a=true
while a:
print('done')
如何避免while造成死循环,避免判断语句是一个常量,在代码块中需要有能够影响代码块变量的命令
示例:
a=1
while a<=10:
a +=1
print(a)
while后面可以接else使用
示例:
a=1
while a<=10:
a +=1
print(a)
else:
print('EOF')
for
for 数值 in 序列:
【前面必须有四个空格】一个命令行
【前面必须有四个空格】第二个命令行
…
可以是pass
for主要用来遍历/循环 序列或者集合,字典
示例:
a = ['apple','orange','banana','grape']
for i in a;
print(i)
for打印两层列表
示例:
print默认打印出列,加end=’'可更改为打印成行
a =[ ['apple','orange','banana','grape'],(1,2,3)]
for i in a;
for j in i;
print(j,end='')
for后面可以接else使用
示例:
当for循环中的所有命令执行结束后,执行else
a =[ ['apple','orange','banana','grape'],(1,2,3)]
for i in a;
for j in i;
print(j,end='')
else:
print('END')
终止for语句的遍历
示例:
结束循环语句使用break,后续else也不会执行,执行结果:1
break只结束一层for循环
a = [1,2,3]
for x in a:
if x==2
break
print(x)
跳过for语句的遍历
示例:
跳过循环语句使用continue,后续else会执行,执行结果:1 3
a = [1,2,3]
for x in a:
if x==2
continue
print(x)
一段代码执行十次
示例:
与c#中 for(i=0; i<10; i++){} 等效
range函数(a,b) a表示起始值,b表示偏移量
#连续1到10
for x in range(0,10):
print(x)
间隔range函数(a,b,c) a表示起始值,b表示偏移量,c表示步长
for x in range(0,10,2):
print(x)
反向range函数(a,b,c) a表示起始值,b表示偏移量,c表示步长
for x in range(10,,0,-2):
print(x)
习题1
无限列表打印间隔数列
a = [1,2,3,4,5,6,7,8]
for i in range(0,len(a),2):
print(a[i],end=' | ')
b = a[0:len(a):2]
print(b)
得到列表[1,3,5,7]
高级代码要求:高性能,封装性好(可复用性搞),编程习惯
习题2
蒙特卡罗方法计算e自然对数
from random import *
DARTS = 1024*1024
count = 0
for i in range (DARTS):
x = uniform(1,2)
y = uniform(0,1)
if x*y < 1:
count += 1
e = pow(2 , DARTS/count)
print("{}".format (e))