条件控制语句2020-11-3

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

学了列表以后可以把结果存放在一个列表内。

完毕

猜你喜欢

转载自blog.csdn.net/m0_46738467/article/details/109482000