Problems
1.程序填空:输入一个表示成绩的整数,输出其对应等级,80分以上为Good,60分以上为Pass,否则为Fail。
(1)方法一:条件表达式
mark=int(input(“mark:”))
print(“Good” if mark>=80 else ______________________ ) #输出成绩等级
(2)方法二:多分支if语句
mark=int(input(“mark:”))
if ___________________:
print(“Good”)
elif ___________________:
print(“Pass”)
else:
____________________
(3) 方法三:列表
mark=int(input(“mark:”))
print([“Fail”,“Pass”,“Good”][(mark>=60)+(mark>=80)]) #输出成绩等级
解释本方法的实现原理。
2.找出以下程序的错误。
import random
a= randint(-100,100)
if a>0:
def="正数"
print(def)
elif a=0:
print("零")
else:
print(a+"负数")
3.程序修改。
(1) 改写下列if语句,使else与第一个if配对。
if x<2:
if x<1:
y=x+1
else:
y=x+2
(2) else与if的匹配原则是什么?改写if语句前,y=x+1和y=x+2两条语句的执行条件是什么?改写后呢?
略。
4.编写程序,用循环语句打印以下数字图案。
1
12
123
1234
12345
for i in range(1,5+1):
for j in range(1,i+1):
print(j,end='') #①
print() #②
(1) 语句①和②在该程序中的作用是什么?在循环中各被执行了多少次?
(2) 如果不使用for语句而改用while语句,以上程序应该如何修改?
(3) 编写程序,用循环语句分别打印以下图案:
5.编写程序,输出100以内的所有素数
for i in range(2,100):
flag=True
for j in range(2,i): #①
if i%j==0:
flag=False
break
if not flag:
continue #②
print(i)
(1) break和continue语句在该程序中的作用分别是什么?
(2) 语句②的作用是什么?如果不使用变量flag应该如何修改该语句以实现相同的功能?
(3) 孪生素数就是指相差2的素数对,例如3和5,5和7,11和13…。编写程序,输出100以内的所有孪生素数对。
Source Code
公众号后台回复 200426 获取源码
欢迎关注~ SandQuant 专注于全球金融数据和量化投资策略