文章目录
1. 条件控制语句
1.1 if语句
if可以控制多条语句,后面可以跟着一个代码块,格式如下:
if 条件语句:
代码块
代码块前面缩进四个空格。if语句控制的是缩进部分。
- if语句在执行时会先对条件表达式进行求值判断,如果True则执行后面的代 码块,如果为False则不执行。
- 代码块里面保存着一组代码,要么都执行,要么都不执行。
- 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束。
- 代码块就是一种为代码分组的机制。
1.2 input()函数
用于接收用户输入数据,用户输入内容后,回车结束,用户没有敲回车程序一直停留在输入界面。敲回车后input()函数立即执行完毕,并保存所接收的结果为字符串。下面我们结合if语句完成一个程序。
程序要求,用户输入一定的工资数,如果工资大于2000每月,输出“你能养活自己了。”
salary=int(input(‘请输入你的工资:’))
if salery>=2000:
print(‘你可以养活自己了’)
- 这里需要强制转化一下salary的数据类型为整型,因为input()函数保存的数据为字符串,在这里字符串不能和整数比较,如果把整数转化为字符串,虽然能比较,但字符串的比较在这里没有意义。
1.3 else 语句
紧跟if语句后面,用来执行if条件不满足时的结果。语句格式和if语句一样,代码块缩进。
1.4 elif 语句
- 跟在if语句的后面,用来执行多个条件判断。语句格式和if语句一样,代码块需要缩进。
1.5 工资收入判断程序
- 我们写一段代码来练习。程序完成一个这样的事件:用户输入工资,如果工资大于2000,输出“你可以养活自己“了”,如果工资大于5000,输出“工资还说的过去”,如果工资大于10000,输出“哥的工资也上万了”,如果工资大于20000,输出“有钱就是任性”。如果工资小于2000,输出“你该加油了”。
salary=int(input('请输入你的工资:'))
if salary>20000:
print('有钱就是任性')
if salary>10000:
print('哥的工资也上万了')
if salary>5000:
print('还说的过去')
if salary > 2000:
print('你能养活自己了')
else:
print('你该加油了')
- if-elif-else语句只会有一个代码块执行
- 条件不满足的语句不会被执行
- 按顺序判断,如果一个条件满足,则不会再执行其他的条件
例如如果让上面的程序条件中的工资从小到大进行判断,则执行结果就会出错,出现死代码,后面的程序永远不会执行。
salary=int(input('请输入你的工资:'))
if salary>2000:
print('你能养活自己了')
if salary>5000:
print('还说的过去')
if salary>10000:
print('哥的工资也上万了')
if salary > 20000:
print('有钱就是任性')
else:
print('你该加油了')
如果想解决这个问题,需要加条件
salary=int(input('请输入你的工资:'))
if salary>20000 :
print('有钱就是任性')
if salary>10000 and salary<20000:
print('哥的工资也上万了')
if salary>5000 and salary<10000:
print('还说的过去')
if salary > 2000 and salary<5000:
print('你能养活自己了')
else:
print('你该加油了')
1.6 狗狗年龄程序
下面我们完成一个程序来练习以上知识点
假如一个狗狗5岁,那么他前两年的时间,一岁相当于人的10.5岁,后面每岁相当于人的4岁。那么5岁的狗狗就相当于人210.5+34=33岁。
现在,我们写一个程序,可以让用户输入任意的狗狗的年龄,来换算出狗狗相当于人的多少岁。
person_age=0 #定义人的年龄,并赋值待用。
dog_age=int(input('请输入狗狗年龄:')) #用input()函数接收用户输入数据,并强制转换为整型
if dog_age>0: # 用于检验输入数据是否为负数
if dog_age<=2:
person_age=10.5*dog_age
elif dog_age>2:
person_age=10.5*2
person_age+=(dog_age-2)*4
print('狗狗的年龄相当于人',person_age,'岁')
else:
print('你输入的数据不合法!!!')
1.7 while 循环语句
格式
while 表达式:
代码块
循环三要素
- 初始化表达式
- 条件表达式
- 更新条件表达式
例题:
i = 0
while i <20:
i+=1 # 更新条件表达式可以放在要执行的程序前,也可以放在后面,可根据需要选择
print('I love you')
else:
print(‘循环结束’)
print(‘I love you’)执行后,继续进行条件判断,如果条件符合,继续执行。直到条件不再符合,循环结束。如果有else语句,则执行else语句的内容。没有,则结束。
1.8 求100内所有奇数和程序
例题:求100内所有奇数的集合。
i = 0
a=0
while i <100:
i+=1
if i%2!=0:
a+=i
print('循环结束')
执行结果:
2. 作业
2.1 用条件运算符找三个数中的最大数程序
a=20
b=30
c=40
m=a if a>b and a>c else b if a>b and a>c else c if c>b and c>a else a
print(f'abc中的最大值是{m}')
执行结果:
2.1.1老师的答案:
- 第一种:
a=10
b=20
c=30
m=a if a>b else b
n=m if m>c else c
print(f'{n}是最大值')
- 第二种:
a=10
b=20
c=30
m=a if a>b and a>c else b if b>c else c
print(f'{m}是最大值')
2.2 求1000以内所有的水仙花数程序
水仙花数是指:一个三位数,每位上的数的三次幂之和刚好等于他本身。
如:13+53+3***3=153,153就是一个水仙花数。
答案:
i=99
while i<999
i+=1
if (i//100)**3+((i//10)%10)**3+(i%10)**3==i:
print(f'{i}是水仙花数‘)
else:
print('循环结束')
执行结果:
结果:
D:\Python38\python.exe D:/work/基础/Day05/课堂代码/while语句练习.py
153是水仙花数
370是水仙花数
371是水仙花数
407是水仙花数
循环结束
2.2.1 老师的答案:
i=100
while i<1000:
if (i//100)**3+((i//10)%10)**3+(i%10)**3==i:
print(f'{i}是水仙花数‘)
i+=1
else:
print('循环结束')
2.3 判断一个数是不是质数程序
质数概念:质数又叫素数,值除了1和它本身之外不能再被其他数整除的数。如:3,5,7,11,13等。1不是质数,也不是合数。合数就是指除了1与它本身之外还可以被其他的数整除。
答案:
i=1
j=0
num=int(input('请输入一个任意数让我来判断:'))
while i <num-1:
i+=1
a=num%i
if a== 0:
j+=1
if j==0 and num!=1:
print(f'{num}是质数')
else:
print(f'{num}不是质数’)
我输入1,2,3,4,5执行结果:
2.3.1 老师的答案:
i=2
flag=True
num=int(input('请输入一个大于2的数:'))
while i <num:
if num/i==0:
flag=False
i+=1
if flag:
print(f'{num}是质数')
else:
print(f'{num}不是质数')
2.4 求100以内的质数程序
这个程序稍微改动可以求某个范围内的质数。
num=0
#num=int(input('请输入一个任意数让我来判断:'))
while num<100:
num+=1
i=1
j=0
while i <num-1:
i+=1
a=num%i
if a== 0:
j+=1
if j==0 and num!=1:
print(f'{num}是质数')
else:
pass
#print(f'{num}不是质数'
执行结果:
D:\Python38\python.exe D:/work/基础/Day05/素数.py
2是质数
3是质数
5是质数
7是质数
11是质数
13是质数
17是质数
19是质数
23是质数
29是质数
31是质数
37是质数
41是质数
43是质数
47是质数
53是质数
59是质数
61是质数
67是质数
71是质数
73是质数
79是质数
83是质数
89是质数
97是质数
Process finished with exit code 0
学了列表以后可以把结果存放在一个列表内。
完毕