流程控制
条件判断(if语句)
- 执行的流程:
- if语句在执行时,会先对条件表达式进行求值判断,
- 如果为True,则执行if后的语句
- 如果为False,则不执行
- 语法:if 条件表达式 :
代码块 - 代码块代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
- 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
- 代码块就是一种为代码分组的机制
input()函数
- 可用来获取用户输入
- 对程序有停止的作用,必须要有输入程序才会继续
def input(*args, **kwargs): # real signature unknown
"""
Read a string from standard input. The trailing newline is stripped.
The prompt string, if given, is printed to standard output without a
trailing newline before reading input.
If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
On *nix systems, readline is used if available.
"""
pass
在上述程序中可以看出,input()函数输入的是一个字符串
if-else语句
• 语法:
if 条件表达式 :
代码块
else :
代码块
- 执行流程:
- if-else语句在执行时,先对if后的条件表达式进行求值判断
- 如果为True,则执行if后的代码块
- 如果为False,则执行else后的代码块
if-elif-else 语句
• 语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
…
else :
代码块
- 执行流程:
- if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
- 如果表达式的结果为True,则执行当前代码块,然后语句结束
- 如果表达式的结果为False,则继续向下判断,直到找到True为止
- 如果所有的表达式都是False,则执行else后的代码块
循环控制
while语句
- 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
- 语法:
while 条件表达式 :
代码块
else:
代码块
while循环嵌套
- 可以通过多重循环来实现目的,在之后的九九乘法表中我们将看到这一功能的具体使用
break和continue
- break 可以用来立即退出循环语句,包括else语句
- continue 用来跳过当次循环
作业
5-1九九乘法表
i=1
while i<10:
j=1
while j<i+1:
# print(f'{i}*{j}={i * j}\t', end='')
print('%dx%d=%d\t'%(i,j,i*j),end='')
j+=1
i+=1
print()
5-2水仙花数
for i in range(100,1000):
if (i%10)**3+(i//10%10)**3+(i//10//10%10)**3==i:
print(i)
5-3质数的判断
a=int(input('输入一个数'))
def zspd(a):#判断是不是质数
if a>2:
for i in range(2,a//2):
while a%i!=0:
print('%d为质数'%a)
break
while a%i==0:
print('%d为合数'%a)
break
break
if a==2:
print('2为质数')
if a<2:
print('错误')
zspd(a)
5-4 石头剪刀布(不使用字典)
import random
comp=random.randint(1,3)
player=int(input('请输入一个数'))
print('电脑出的是%d'%comp)
#1石头
#2剪刀
#3布
if comp==player:
print('平局')
elif (comp==1 and player==2) or (comp==2 and player==3) or (comp==3 and player==1):
print('你输了')
elif (comp==1 and player==3) or (comp==2 and player==1) or (comp==3 and player==2):
print('你赢了')
一个小练习,试试分解质因数
- 要求输入的是质数
- 分解的形式是形如:15=3x5
a=int(input())
c=''
print('%d='%a,end='')
for j in range(2,a):
while a%j==0:
a=a//j
c=c+f'{j}x'
continue
print(c[0:-1],end='')
结合5-3质数的判断函数,还可以更加完善这个程序。