一、判断语句
Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。
下图概括了条件语句的执行过程:
格式:
if + 条件:
要执行的操作
......
ps:如果缩进不同,则代表不同层级
1.多重判断
if 判断语句:
代码执行
elif 判断语句:
代码执行
elif 判断语句:
代码执行
else:
代码执行
color="red"
if (color=="green"):
print("可以通行")
if (color=="red"):
print("不能通行")
if (color=="yellow"):
print("需要减速")
print("试试,python层级和缩进有关")
#----------------------------#
if color==" ":
pass #如果没有判断内容,需要写个 pass 占位。如果结构体中有内容也有 pass,pass 可以忽略。
print("空格")
#----------------------------#
color="green"
if (color=="red"):
print("stop")
else:
print("go")
#----------------------------#
color="green"
if color=="green":
print("go")
elif color=="red":
print("stop")
elif color=="yellow":
print("slow")
else:
pass
print("判断结束")
#----------------------------#
carType=input("请输入车的类型:")
lightColor=input("请输入灯颜色:")
if carType in ("jiuhu","jingche","jiuhuo"):
print("特殊车辆直接通行")
else:
if lightColor=="green":
print("go")
elif lightColor=="red":
print("stop")
elif lightColor=="yellow":
print("slow")
else:
print("randomaction")
print("判断结束")
#----------------------------#
score=int(input("请输入分数:"))
if score<60:
print("不及格")
elif score>=60 and score<75:
print("及格")
elif score>=75 and score<90:
print("良好")
else:
print("优秀")
二、 循环语句
1.概述
编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式:
Python 提供了 for 循环和 while 循环(在 Python 中没有 do…while 循环)
循环类型 | 描述 |
---|---|
while 循环 | 在给定的判断条件为 true 时执行循环体,否则退出循环体。 |
for 循环 | 重复执行语句 |
嵌套循环 | 你可以在while循环体中嵌套for循环 |
循环控制语句可以更改语句执行的顺序。Python 支持以下循环控制语句:
控制语句 | 描述 |
---|---|
break 语句 | 在语句块执行过程中终止循环,并且跳出整个循环 |
continue 语句 | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
2.while循环
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 条件表达式:
条件满足,执行循环语句
变量值改变
#若判断条件为 True,代表无限循环
例子:
a=1
while a<=50:
print("打印第"+str(a)+"份试卷")
a+=1
#----------#
a=1
while True:
print("打印第"+str(a)+"份试卷")
a+=1
if a==51:break
#----------#
#根据输入来判断,如果及格了就结束考试,如果不及格就重新考试
a=int(input("请输入数字:"))
while a>=0:
if a>=60:
print("结束考试")
break
else:
print("重新考试")
break
#----------#
#根据输入来判断,如果及格了就结束考试,如果不及格就重新考试
while True:
a=int(input("请输入分数:"))
if a>=60:
print("退出考试,分数为:"+str(a))
break
else:
print("不及格继续考试,"+"当前分数为:"+str(a))
continue
#----------#
while True:
a=int(input("请输入温度:"))
if a>35 or (a>=-20 and a<5):
print("请打开空调,"+"当前温度为:"+str(a))
break
elif a>=5 and a<=35:
print("温度适宜,无需开空调,"+"当前温度为:"+str(a))
break
elif a<-20:
break
#----------#
while True:
temp=int(input("请输入外界温度:"))
if temp<-20:
print("太冷了,空调冻住了")
break
elif temp>=5 and temp<=35:
print("温度适宜,不需要开空调")
else:
print("温度不太适合,需要开空调")
print("程序结束!")
3.for 循环
Python for 循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for 循环的语法格式如下:
for 变量 in 序列
循环语句
for i in range(51):
print("第"+str(i)+"份试卷打印")
#----------#
for i in [1,2,3,4,5]:
print(i)
#----------#
a=(1,2,3,4,5)
for i in a:
print(i)
#----------#
#鸡兔同笼,40只鸡和兔子,120只脚,求鸡和兔的数量
#假设有 x 只鸡,40-x 只兔
for x in range(41):
b=40-x
c=2*x+4*b
if c==120:
print("鸡的数量为:"+str(x))
print("兔子的数量为:"+str(40-x))
4.break、continue
- break 语句用来结束当前整个循环(从当前循环的本次执行就结束)
- continue 语句用来跳过当前循环的本次执行(下一次执行继续)
示例:
for i in range(5):
print("-----")
print(i)
#----------#
for i in range(5):
i+=1
print("-----")
if i==3:
break
print(i)
#----------#
for i in range(5):
i+=1
print("-----")
if i==3:
continue
print(i)
#----------#
for i in range(5):
i+=1
print("-----")
#if i==3:
#break
continue
print(i)
5.pass
Python pass 是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。
示例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 输出 Python 的每个字母
for letter in 'Python':
if letter == 'h':
pass
print '这是 pass 块'
print '当前字母 :', letter
print "Good bye!"
#结果
当前字母 : P
当前字母 : y
当前字母 : t
这是 pass 块
当前字母 : h
当前字母 : o
当前字母 : n
Good bye!
三、多重循环
#单循环打印矩形
for i in range(5):
print("* * * * *")
#双重循环打印矩形( print()换行,end=''不换行 )
for i in range(5): #外层循环控制行
for j in range(5): #内层循环控制列
print("* ",end='')
print()
#打印直角三角形
##直角在左下
for x in range(5):
for y in range(x+1):
print("* ",end='')
print()
##直角在左上
for x in range(5):
for y in range(5-x):
print("* ",end='')
print()
##直角在右上
def num(n):
for i in range(1,n+1):
for j in range(1,n+1):
if j<i:
print(' ',end=' ')
else:
print('*',end=' ')
print()
num(5)
##直角在右下
def num(n):
for i in range(1,n+1):
for j in range(1,n+1):
if i+j<=n:
print(' ',end=' ')
else:
print('*',end=' ')
print()
num(5)
#打印菱形
for x in range(5):
for y in range(4-x):
print(" ",end='')
for y in range(2*x+1):
print("*",end='')
print()
for x in range(5):
for y in range(x+1):
print(" ",end='')
for y in range(7-x*2):
print("*",end='')
print()
#打印素数
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
for num in range(lower, upper + 1):
# 素数大于 1
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
#----------------------------------
for x in range(2,101):
for y in range(2,x+1):
if x%y==0 and x!=y: #如果 x 有除了自己以外的因数,则 x 不是素数
break
if x==y:
print("素数:"+str(x))
break
#求水仙花数
for i in range(100,1000):
a=int(i%10)
b=int((i%100)/10)
c=int(i/100)
if a*a*a+b*b*b+c*c*c==i:
print(i)
#分解质因数:https://www.pianshen.com/article/962070061/
num=int(input("请输入一个正整数:"))
son=2
print(str(num)+"=",end='')
while num!=son:
if num%son==0:
num/=son
print(str(son)+"*",end='')
else:son+=1
print(son)
#计算和数,例如输入 3,值为 3+33+333
a=int(input("请输入一个数字:"))
n=a
sum=0
for x in range(a):
sum+=n
n=n*10+a
print(sum)