else语句练习

通过for语句进行循环,通过定义pwd,打印输出“请输入密码”由if语句进行判断,当pwd等于9999,当input输入值为9999即为密码正确,else(否则)密码不正确。等错误三次后,外部的else语句,就会执行,同时退出代码运行。

1
2
3
4
5
6
7
8
9
10
# 开发时间:2023/2/13 19:41
for item in range(3):
pwd=input('请输入密码')
if pwd=='9999':
print('密码正确')

else:
print('密码不正确')
else:
print('对不起,三次均为错误')

运行结果

训练2

套入while语句,定义变量a,

1
2
3
4
5
6
7
8
9
10
11
12
13
a=0  #初始化变量
while a<3:
pwd=input('请输入密码')
if pwd=='000':
print('密码正确')
break #结束循环
else:
a+=1 #改变变量,当每次执行else语句时,a+1次,当大于等于3时,则执行外部的else语句
# 同时打印输出。
print('密码错误')

else:
print('三次已过,请重新运行')

运行结果

嵌套循环

要求: 输出一个三行四列的矩阵

外层控制打印行数,内层控制打印每一行的个数

1
2
3
4
5
6
7
8
9
10
11
'''输出一个三行四列的矩阵'''
for i in range(1,4): #行表,执行三次,一次一行,1到4代表打印3行,
for j in range(1,5): #打印输出每一行的个数,1到5代表打印4个,
print('*',end='\t') #不换行输出
print() #打行
'''输出三角矩阵''' #对比不同的地方,只需要在将for j in range(1,5)改为for j in range(1,i+1)
#这样每次执行,当i等于1时,就会输出1,然后加一,输出2,再加一,输出3,直到第十
for i in range(1,10): #行表,执行三次,一次一行,1到4代表打印3行,
for j in range(1,i+1): #打印输出每一行的个数,1到5代表打印4个,
print('*',end='\t') #不换行输出
print() #打行

运行结果1

运行结果2

练习1

将华氏温度转换为摄氏温度
提示:华氏温度到摄氏温度的转换公式为:$C=(F - 32) \div 1.8

参考答案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"""
将华氏温度转换为摄氏温度
提示:华氏温度到摄氏温度的转换公式为:$C=(F - 32) \div 1.8$。
"""
f = float(input('请输入华氏温度')) #通过input函数调佣输入框,float将字符创转为浮点数
c=(f-32)/1.8 #通过公式,f为输入值,减去32,并除以1.8
print('摄氏温度',c) #最终得到摄氏温度,
#缺点,没有保留小数点后一位,
#改动
print('%.1f华氏度'%(c))
# %.1f表示这是一个浮点数,小数点后保留1位有效数字。字符串之后的%后面跟的变量值会替换掉占位符然后输出到终端中
"""

"""
说明:在使用print函数输出时,也可以对字符串内容进行格式化处理,
上面print函数中的字符串%1.f是一个占位符,稍后会由一个float类型的变量值替换掉它。
同理,如果字符串中有%d,后面可以用一个int类型的变量值替换掉它,而%s会被字符串的值替换掉。
除了这种格式化字符串的方式外,还可以用下面的方式来格式化字符串,其中{f:.1f}和{c:.1f}可以先看成是{f}和{c},
表示输出时会用变量f和变量c的值替换掉这两个占位符,后面的:.1f表示这是一个浮点数,小数点后保留1位有效数字。
"""

f = float(input('请输入华氏温度: '))
c = (f - 32) / 1.8
print('%.1f华氏度 = %.1f摄氏度' % (f, c))

print(f'{f:.1f}华氏度 = {c:.1f}摄氏度')

练习2

输入圆的半径计算周长和面积。

参考答案:

1
2
3
4
5
6
7
8
"""
输入圆的半径计算周长和面积。
"""
banjing=float(input('输入半径'))
zhouchang=2*3.1416*banjing
mianji=banjing*banjing
print('周长:%.2f'%zhouchang) #%.2f保留有效数字小数点后两位
print('面积:%.2f'%mianji)

练习3

输入年份判断是不是闰年。
输入年份 如果是闰年输出True 否则输出False

提示:

当年年份整除4,再整除100,那这一年就是闰年,

当年年份整除4,再整除400,那这一年就是闰年,

参考答案:

1
2
3
4
5
6
7
"""
输入年份判断是不是闰年。
输入年份 如果是闰年输出True 否则输出False
"""
panduan=int(input('请输入年份'))
shuchu=panduan%4==0 and panduan%100==0 or panduan%400==0
print(shuchu)

说明:说明:比较运算符会产生布尔值,而逻辑运算符andor会对这些布尔值进行组合,最终也是得到一个布尔值,闰年输出True,平年输出False

练习

对数组列表进行排序

1
2
3
4
5
6
7
8
9
#对列表进行排序
L=[10121,12,11112,1214,124,214143214,12414,213,34,4,2,4]
print(sorted(L,reverse=True))

"""
sorted() 函数不会改变所传入的序列,而是返回一个新的、排序好的列表。

除此之外,sorted()函数默认对序列中元素进行升序排序,通过手动将其 reverse 参数值改为 True,可实现降序排序。
"""

说明:通过sorted()函数进行排序,默认的排序为升序,从小到大排列,可以再加入reverse=true,改为降序,

分支结构

应用场景

迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后,我们要根据玩家得到分数来决定究竟是进入第二关,还是告诉玩家“Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行。类似的场景还有很多,我们将这种结构称之为“分支结构”或“选择结构”。给大家一分钟的时间,你应该可以想到至少5个以上这样的例子,赶紧试一试。

if语句的使用

在Python中,要构造分支结构可以使用ifelifelse关键字。所谓关键字就是有特殊含义的单词,像ifelse就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名(事实上,用作其他的标识符也是不可以)。下面的例子中演示了如何构造一个分支结构。

1
2
3
4
5
6
7
8
9
10
11
12
yonghu=(input('请输入账户:'))
mima=(input('请输入密码:'))
if yonghu=='山海'and mima=='110':
print('身份验证成功')
wenti=(input('请回答你的博客名:'))
if wenti=='山海':
print('欢迎回家,主人')

else:
print('请立即停止你的盗号行为,我将立即退出程序')
else:
print('身份验证失败')

需要说明的是和C/C++、Java等语言不同,Python中没有用花括号来构造代码块而是使用了缩进的方式来表示代码的层次结构,如果if条件成立的情况下需要执行多条语句,只要保持多条语句具有相同的缩进就可以了。换句话说连续的代码如果又保持了相同的缩进那么它们属于同一个代码块,相当于是一个执行的整体。缩进可以使用任意数量的空格,但通常使用4个空格,建议大家不要使用制表键或者设置你的代码编辑工具自动将制表键变成4个空格

练习

练习1

1
2
3
4
5
6
7
8
9
10
11
12
13
"""
英制单位英寸和公制单位厘米互换
1英寸等于2.54cm
2.54厘米等于1英寸
"""
zhuan=float(input('请输入长度'))
huan=input('请输入单位')
if huan=='in' or huan=='英寸':
print('%f英寸=%f厘米'%(zhuan,zhuan*2.54))
elif huan=='cm' or huan=='厘米': #elif的意思是并列分支,入口有两个,符合那个条件就会执行那个
print('%f厘米=%f英寸'%(zhuan,zhuan/2.54))
else:
print('请输入有效单位')

练习2:百分制成绩转换为等级制成绩。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""
练习2:百分制成绩转换为等级制成绩。
要求:
如果输入的成绩在90分以上(含90分)输出A;
80分-90分(不含90分)输出B;
70分-80分(不含80分)输出C;
60分-70分(不含70分)输出D;
60分以下输出E。
"""
# 思路一
chengji =int(input('请输入成绩'))
if chengji >=90:
print('对应的等级是A级')
elif chengji>=80:
print('对应的等级是B级')
elif chengji>=70:
print('对应的等级是C级')
elif chengji>=60:
print('对应的等级是:D级')
elif chengji<60:
print('对应的等级是:E级')
"""
百分制成绩转换为等级制成绩

"""
# 思路二
score = float(input('请输入成绩: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('对应的等级是:', grade)

练习3

练习3:输入三条边长,如果能构成三角形就计算周长和面积

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"""
练习3:输入三条边长,如果能构成三角形就计算周长和面积。
判断输入的边长能否构成三角形,如果能则计算出三角形的周长和面积
"""
a=float(input('第一条边:'))
b=float(input('第一条边:'))
c=float(input('第一条边:'))
if a+b>c and a+c>b and c+b>a:
print('周长: %f' % (a + b + c))
p = (a + b + c) / 2 #求出半周长
mianji = (p * (p - a) * (p - b) * (p - c)) ** 0.5 #**代表指数,
print('面积: %f' % (mianji))
else:
print('不能构成三角形')

说明: 上面使用的通过边长计算三角形面积的公式叫做海伦公式