Python
二、语法
1、条件判断语句
1.1、if语句和if…else…语句
if 判断条件:
条件成立时执行的语句
if 判断条件:
条件成立时执行的语句
else:
条件不成立时执行的语句
if语句下面的内容需要严格遵循缩进的规则
1.2、if…elif…else语句
if 判断条件1:
条件1成立时执行的语句
elif 判断条件2:
条件2成立时执行的语句
。
。
elif 判断条件n:
条件n成立时执行的语句
else:
以上条件都不成立时执行的语句 #else语句可以不用
1.3、if语句的注意事项
隐式转换:if语句后面的条件判断语句结果会强制为布尔值
if 2+4: #这里会强制把(2+4)转换为布尔值
pass
1.4、三元表达式
if…else…语句可以简写成三元表达式,参考以下代码
#有2个数num1和num2,把其中的较大者赋值给max_num
#传统写法
num1=5
num2=8
if num1 > num2:
max_num = num1
else:
max_num = num2
print(max_num) #8
#三元表达式
num1=5
num2=8
max_num = num1 if num1 >num2 else num2
print(max_num) #8 完全等效于上面的语法
2、pass语句
关键字pass写在程序中,不进行任何操作,eg:
num=int(input('输入一个数字:'))
if num > 0:
pass #比如还没想好语句下写什么内容,但又想测试程序,就可以用pass占位,否则会报错
3、循环语句
3.1、while循环
while语句语法,注意while循环必须要有能够结束循环的条件,否则极易造成死循环
while 判断条件:
判断条件为真时执行的语句
3.2、for…in…循环
for ele in iterable: #ele时一个变量,iterable是一个可迭代对象
每轮循环执行的语句 #遍历操作
需要注意的是,关键字in的后面必须是一个可迭代对象,常见的有:字符串、列表、字典、元组、集合以及常用的range。
range是一个内置类,用来生成指定区间的序列,range[0,10]就是生成0-9的序列,指定区间含左不含右
4、关键字break和continue
break语句功能:用在循环中,break直接结束整个循环
continue功能:用在循环中,continue直接结束本轮循环,开启下轮循环
break和continue只能用在循环中
continue使用时要注意避免造成死循环,见以下代码:
#打印0,1,2,4
i=0
while i<5:
if i==3: #由于continue不断地返回到判断条件,导致造成死循环
continue
print(i)
i=i+1
break语句在某些场合能够有效的避免逻辑陷阱,参考以下代码:
#不断地让用户输入用户名和密码,只要用户名和密码不是lisa和123,就一直问
#常规写法
username=input('输入用户名:')
password=input('输入密码:')
while username != 'lisa' and password != '123':
#正确写法应是not (username == 'lisa' and password == '123')
username=input('输入用户名:')
password=input('输入密码:')
以上代码看似没有问题,但实际运行会发现如果用户名输入正确,而密码输错,系统就不会再问了,这是因为发生了and运算短路(逻辑运算短路)。优化的语法如下:
while True:
username=input('输入用户名:')
password=input('输入密码:')
if username == 'lisa' and password == '123':
break
5、for…else…语句
for可以搭配else语句,其功能是当for循环内部的break没有被执行时,就执行else下面的语句。
#求101~200之间的素数:只能被1和自身整除的数叫做素数
for i in range(101,201):
for j in range(2,i):
if i%j == 0:
break
else:
print('%d是素数'%i) #当for循环中的break语句没有执行时,就执行else语句