Python基础04_控制语句
Summary
1.选择结构(条件表达式<1>,单分支<2>,双分支<3>,多分支<4>,嵌套<5>)
2.循环结构(while循环<6,7>,for循环<8><10>,嵌套循环<11>,break语句<12>,continue语句<13>,else语句<14>,循环代码优化<15>,并行迭代<16>,推导式创建序列<17>)
Questions
1.什么情况下,条件表达式的值为False(其余情况为True);条件表达式可以使用赋值符"="吗?
2.在控制台输入一个小于10的数字,并判断是否小于10,然后返回这个数字,此处以6为例
a = input("输入一个小于10的数字: ")
输出结果
6
3.在控制台输入一个小于10的数字,并判断是否小于10,若小于10,返回这个数字,否则返回"a大于等于10",此处以12为例,使用双分支选择结构和三元运算符完成操作
a = input("输入一个小于10的数字: ")
输出结果
输入一个小于10的数字: >? 12
a大于等于10
4.输入一个学生的成绩,自动返回该学生的分数和所在的等级
小于60为不及格,[60,80)为及格,[80,90)为良好,[90,100]为优秀
分别使用单分支选择结构和多分支选择结构操作
score = int(input("请输入分数: "))
grade = ""
输出结果
请输入分数: 86
分数是86,等级是良好
5.输入一个学生的成绩,自动返回该学生的分数和所在的等级
score = int(input("请输入0-100的分数: "))
grade = ""
规则如下
分数 | 等级或输出 |
---|---|
>100或者<0 | 错误,输入的值不在范围内 |
90以上(包含90) | A |
80以上90以下(包含80,以下同) | B |
70以上80以下 | C |
60以上70以下 | D |
60以下 | E |
输出结果(以101和85为例):
请输入0-100的分数: 101
错误,输入的值不在范围内
请输入0-100的分数: 85
分数是85,等级是B
6.使用while循环打出0到10的数字
输出结果(利用制表符,横向输出结果)
0 1 2 3 4 5 6 7 8 9 10
7.计算1-100之间数字的累加和
8.(1)用for循环遍历元组a = (10, 20, 30);(2)用for循环遍历字符串a = "SantaTes"中的字符;(3)给定字典a = {“name” : “santa”, “age” : 25},用for循环遍历字典a所有的键/值/键值对
输出结果
(1)
10 20 30
(2)
S a n t a T e s
(3)
name age
santa 25
('name', 'santa') ('age', 25)
9.复习range对象:range对象是一个迭代器对象,产生指定范围的数字序列,请问(1)range(10)产生了哪些数字;(2)range(3,10)产生了哪些数字;(3)range(3,10,2)产生了哪些对象
10.用for循环和if语句,同时计算出1-100的和,奇数和,偶数和
输出结果
1到100的累加和为5050,奇数和为2500,偶数和为2550
(1)使用for循环输出以下结果
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
(2)使用for循环输出九九乘法表
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
(3)从下面的表中提取薪资大于10000的数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mIhcg4Qp-1584022189673)(D:\commonsoftwares\Typora\typora_images\阶段1_Python基础04\image-20200311161625204.png)]
输出结果
{'name': '高小一', 'age': 18, 'salary': 30000, 'city': '北京'}
{'name': '高小二', 'age': 19, 'salary': 20000, 'city': '上海'}
12.输入一个字符,若输入"q"或"Q"则终止程序,效果如下
输出结果
请输入一个字符(q或Q退出): a
a
请输入一个字符(q或Q退出): b
b
请输入一个字符(q或Q退出): Q
程序结束
13.录入员工薪资,输出员工人数,薪资列表,输入负数时弹出"薪资不能为负数",输入Q或q弹出"录入完成"退出,效果如下:
输出结果
请输入薪资(按q或Q结束): 1000
请输入薪资(按q或Q结束): 2000
请输入薪资(按q或Q结束): 10000
请输入薪资(按q或Q结束): 15000
请输入薪资(按q或Q结束): -1000
薪资不能为负数
请输入薪资(按q或Q结束): Q
录入完成,退出
员工总数为:4
录入薪资: [1000.0, 2000.0, 10000.0, 15000.0]
员工平均薪资: 7000.0
14.在13的基础上修改代码,录入4名员工的薪资,循环结束后运行else语句,输出"4名员工的薪资录入完成"
输出结果
请输入薪资(按q或Q结束): 1000
请输入薪资(按q或Q结束): 2500
请输入薪资(按q或Q结束): 3600
请输入薪资(按q或Q结束): 28000
4名员工的薪资录入完成
员工总数为:4
录入薪资: [1000.0, 2500.0, 3600.0, 28000.0]
员工平均薪资: 8775.0
15.修改下面的代码以提高效率,并输出优化前和优化后的运行时间
for i in range(1000):
result = []
for m in range(10000):
result.append(i * 1000 + m * 1000)
输出结果
第一个循环的耗时为: 2.701795816421509
第二个循环的耗时为: 1.993873119354248
16.给定以下元组,使用两种并行迭代的方法输出指定的结果
names = ("高老一", "高老二", "高老三", "高老四")
ages = (18, 16, 20, 25)
jobs = ("老师", "程序员", "公务员")
输出结果
高老一-18-老师
高老二-16-程序员
高老三-20-公务员
高老一-18-老师
高老二-16-程序员
高老三-20-公务员
17.和普通的循环语句相比,使用推导式生成列表元组字典等对象可以节省代码,使用推导式创建如下对象:(1)将range(1, 5)中的元素乘以2生成新列表;(2)从range(1, 50)中选出能被5整除的数并乘以2生成新列表;(3)将range(1, 5)中的元素取出生成如结果所示的列表;(4)取出字符串中的字符并计算每种字符出现的次数,生成如结果所示的字典;(5)从range(1, 100)中取出能被9整除的数,并生成集合;(6)取出range(4)中的元素,通过生成器对象生成元组
(1)
[2, 4, 6, 8]
(2)
[10, 20, 30, 40, 50, 60, 70, 80, 90]
(3)
[(1, 1), (1, 2), (1, 3), (1, 4), (2, 1), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 3), (3, 4), (4, 1), (4, 2), (4, 3), (4, 4)]
(4)
{'i': 2, ' ': 4, 'l': 2, 'o': 3, 'v': 2, 'e': 2, 'y': 1, 'u': 1, ',': 1, 's': 1, 'a': 2, 'n': 1, 't': 1}
(5)
{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}
(6)
<generator object <genexpr> at 0x000001FC647CC390>
(0, 1, 2, 3)
()
Keys
1.False/0/0.0/空值None/空序列对象[空字符串,空列表,空元组,空字典,空集合]/空range对象/空迭代对象;条件表达式不能使用赋值符"="
a = input("输入一个小于10的数字: ")
if int(a) < 10:
print(a)
#双分支选择结构
a = input("输入一个小于10的数字: ")
if int(a) < 10:
print(a)
else:
print("a大于等于10")
#使用三元条件运算符
a = input("输入一个小于10的数字: ")
print(a if int(a) < 10 else "a大于等于10")
#多分支选择结构
score = int(input("请输入分数: "))
grade = ""
if score < 60:
grade = "不及格"
elif score < 80:
grade = "及格"
elif score < 90:
grade = "良好"
else:
grade = "优秀"
print("分数是{score},等级是{grade}".format(score = score, grade = grade))
#也可以采用单分支选择结构
score = int(input(</