目录
2,模式匹配——其他语言switch的加强版(3.11中的新特性)
一,顺序结构
按照语句的自然顺序,从上到下,依次执行
二,选择结构/分支结构
1,if结构
if 表达式:(这里的冒号别忘记)
语句块
else:
语句块
number = eval(input('请输入您的4位中奖号码:'))
if number == 9876:
print('恭喜您,中奖了!')
else:
print('很遗憾,未中奖')
请输入您的4位中奖号码:9876
恭喜您,中奖了!
请输入您的4位中奖号码:1234
很遗憾,未中奖
if 表达式1:
语句1
elif 表达式2:
语句2
elif 表达式n:
语句n
else:
语句
嵌套if的使用
answer = input('请问:您喝酒了吗')
if answer == 'yes':
proof = eval(input('请输入酒精含量:'))
if proof < 20:
print('构不成酒驾,祝您一路平安!')
elif proof < 80:
print('已构成酒驾,请不要开车')
else:
print('已达到醉驾标准,请千万不要开车')
else:
print('你走吧')
请问:您喝酒了吗yes
请输入酒精含量:65
已构成酒驾,请不要开车
2,模式匹配——其他语言switch的加强版(3.11中的新特性)
score = input('请输入成绩等级:')
match score:
case 'A':
print('优秀')
case 'B':
print('良好')
case 'C':
print('及格')
三,循环结构
1,遍历循环结构for
for 循环变量 in 遍历对象:(冒号别忘记)
语句块
#遍历字符串
for i in 'hello':#i是一个循环变量,自己起的。每次从字符串中取出一个字符并赋值给i,打印出hello中所有的字母
print(i)
#range()是Python中的一个内置函数,用于生成一个[n,m)的整数序列
for i in range(1,11):
print(i)
if i%2==0:
print(i,'是偶数')
#使用遍历for循环计算1-10的累加和
s = 0
for i in range(1,11):
s+=i
print('1-10的累加和为:',s)
#找水仙花数:各位上的数的三次方求和与原数相等
print('----------100-999之间的水仙花数----------')
for i in range(100,1000):
sd = i%10#获取个位上的数字
tens = i//10%10#获取十位上的数字
hundred = i//100#获取百位上的数字
#判断
if sd**3+tens**3+hundred**3 == i:
print(i,'是水仙花数')
h
e
l
l
o
1
2
2 是偶数
3
4
4 是偶数
5
6
6 是偶数
7
8
8 是偶数
9
10
10 是偶数
1-10的累加和为: 55
----------100-999之间的水仙花数----------
153 是水仙花数
370 是水仙花数
371 是水仙花数
407 是水仙花数进程已结束,退出代码0
for 循环变量 in 遍历对象:
语句块1
else
语句块2
2,无限循环结构while
while的语句结构:
while 表达式:
语句块
while循环的四个步骤;
- 初始化变量
- 条件判断
- 语句块
- 改变变量
answer = input('今天上课吗?yes or no')
while answer=='yes':
print('好好学习,天天向上')
answer = input('今天上课吗?yes or no')
#求1-100的累加和
s = 0
i = 1
while i <=100:
s+=i
i = i+1
print('1-100的累加和:',s)
今天上课吗?yes or noyes
好好学习,天天向上
今天上课吗?yes or nono
while1-100的累加和: 5050
while 表达式:
语句块1
else:
语句块2
3,几种常见循环嵌套案例
1,用户登录,三次机会
i = 0#1初始化变量
while i<3:#2条件判断
#3语句块
user_name = input('请输入用户名:')
pwd = input('请输入密码:')
if user_name=='栗知言' and pwd=='88888888':
print('正在登录,请稍后...')
i = 4#4改变循环变量
else:
if i<2:
print('用户名密码不正确,您还有',2-i,'次机会')
i = i +1#改变循环变量
#单分支判断
if i == 3:
print('对不起,三次均输入错误!')
请输入用户名:栗知言
请输入密码:88888888
正在登录,请稍后...
请输入用户名:123
请输入密码:321
用户名密码不正确,您还有 2 次机会
请输入用户名:456
请输入密码:654
用户名密码不正确,您还有 1 次机会
请输入用户名:789
请输入密码:987
对不起,三次均输入错误!
2,打印长方形和三角形
长方形、直角三角形、倒三角形、等腰三角形
#打印输出长方形3行4列
for i in range(1,4):#外层循环控制行数
for j in range(1,5):#内层循环控制列数
print('*',end=' ')
print()#空的print()语句,作用是换行
#如果是print('\n"),则会隔一行输出
print('-----------------')
#打印输出直角三角形12345
for i in range(1,6):
#*的个数与行数相同,第一行循环一次range(1,2),第二行循环两次range(1,3)
for j in range(1,i+1):
print('*',end=' ')
print()
print('-----------------')
#打印输出倒三角形54321
for i in range(1,6):
#第一行循环5次range(1,6),第二行循环4次range(2,6),第三行循环3次range(3,6)
for j in range(i,6):
print('*',end=' ')
print()
print('-----------------')
#打印输出等腰三角形
'''
$$$$*
$$$***
$$*****
$*******
*********
'''
#先打印前面4行
for i in range(1,6):
#打印倒三角形,用空格代替$
for j in range(i,5):
print(' ',end =' ')
#打印*
for k in range(1,i*2):
print('*',end=' ')
print()
* * * *
* * * *
* * * *
-----------------
*
* *
* * *
* * * *
* * * * *
-----------------
* * * * *
* * * *
* * *
* *
*
-----------------
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *进程已结束,退出代码0
3,打印菱形和空心菱形
只有奇数行能打印出菱形
实心菱形:
#打印菱形
row = eval(input('请输入菱形的行数'))
while row%2==0:
print('请重新输入一个行数!')
row = eval(input('请重新输入一个行数:'))
top_row = (row+1)//2#上半个菱形的行数,包括整个菱形图案最中间的一行
#top_row必须是整型,所以用整除号,因为range(,)函数必须是整数
#菱形的上半部分(包括最中间的一行)
for i in range(1,top_row+1):#上半部分菱形的行数外部循环
# 上半部分菱形的每一行中元素的每部循环
#空格组成的倒三角
for j in range(i,top_row):
print(' ',end = ' ')
#*组成的等腰三角形
for k in range(1,i*2):
print('*',end = ' ')
print()
#菱形的下半部分
bottom_row = row//2
for i in range(1,bottom_row+1):
#空格组成的直角三角
for j in range(1,i+1):
print(' ',end = ' ')
#*组成的等腰三角形
for k in range(1,(bottom_row-i+1)*2):
print('*',end = ' ')
print()
请输入菱形的行数7
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
空心菱形:
#打印菱形
row = eval(input('请输入菱形的行数'))
while row%2==0:
print('请重新输入一个行数!')
row = eval(input('请重新输入一个行数:'))
top_row = (row+1)//2#上半个菱形的行数,包括整个菱形图案最中间的一行
#top_row必须是整型,所以用整除号,因为range(,)函数必须是整数
#菱形的上半部分(包括最中间的一行)
for i in range(1,top_row+1):#上半部分菱形的行数外部循环
# 上半部分菱形的每一行中元素的每部循环
#空格组成的倒三角
for j in range(i,top_row):
print(' ',end = ' ')
#*组成的等腰三角形
for k in range(1,i*2):
if k == 1 or k == i*2-1:
print('*', end=' ')
else:
print(' ',end = ' ')
print()
#菱形的下半部分
bottom_row = row//2
for i in range(1,bottom_row+1):
#空格组成的直角三角
for j in range(1,i+1):
print(' ',end = ' ')
#*组成的等腰三角形
for k in range(1,(bottom_row-i+1)*2):
if k==1 or k==(bottom_row-i+1)*2-1:
print('*', end=' ')
else:
print(' ',end=' ')
print()
*
* *
* *
* *
* *
* *
*
四,跳转语句
1,break语句
程序跳转语句break用于跳出(退出)循环语句,通常与if搭配使用,if是选择语句,不是循环语句,所以,不是跳出if
break跳出他的上一级循环。
#计算从1开始逐渐累加到10的过程中,累加和大于20时对应的数字
sum = 0
i =0#(1)初始化变量
while i<11:
sum = sum+i
if sum>20:
print('累加到20时的数字为:',i)
break
i = i+1
累加到20时的数字为: 6
2,continue 语句
continue用于跳过本次循环的后续代码,继续执行下一次循环操作,continue在循环中也是与if语句搭配使用。
#计算1-100的偶数和
s=0
i=0
while i<=100:
if i%2==1:#奇数
i=i+1
continue
s=s+i
i=i+1
print('1-100之间的偶数和:',s)
1-100之间的偶数和: 2550
五、空语句pass
pass是Python中的保留字
在语法中只起到占位符的作用,是语法结构完整,不报错
一般可用在if、for、while、函数的定义中、类的定义中