阶段1_Python基础04

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(</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值