第1关:分支结构基础实训
#第一题
for temp in [-280, -100, 0, 20, 120, 200]:
#请在下面编写代码
# ********** Begin ********** #
if temp<-213.15:
F=None
else:
F=9*temp/5+32
# ********** End ********** #
#请不要修改下面的代码
print_(F)
#第二题
for number in [-101.23, -3.14, 0, 12.55, 1908]:
# 请在下面编写代码
# ********** Begin ********** #
if number<0:
number=-number
# ********** End ********** #
# 请不要修改下面的代码
print_(number)
print('n***********************n')
#第三题
for (num1, num2) in [(12, 34), (-6, -7),(-12, 23), (-273, 0), (0, 199)]:
# 请在下面编写代码
# ********** Begin ********** #
if num1>num2:
temp=num1
num1=num2
num2=temp
# ********** End ********** #
# 请不要修改下面的代码
print(num1, ' ', num2)
print('n***********************n')
#第四题
for (num1, num2, num3) in [(-231, -321, 123), (100, 0, -99), (-980, -1002, -1), (6,1,2017)]:
# 请在下面编写代码
# ********** Begin ********** #
if num1>num2:
temp=num1
num1=num2
num2=temp
if num1>num3:
temp=num1
num1=num3
num3=temp
if num2>num3:
temp=num2
num2=num3
num3=temp
# ********** End ********** #
# 请不要修改下面的代码
print(num1, num2, num3)
print('n***********************n')
在这里插入代码片#第五题
for (num1, num2) in [(10, 5), (12,34), (89,0), (-100, 23), (789, -123)]:
# 请在下面编写代码
# ********** Begin ********** #
if num2==0:
result=None
else:
result=num1/num2
# ********** End ********** #
# 请不要修改下面的代码
print_(result)
print('n***********************n')
#第六题
for (a, b, c) in [(1,2,1), (1,-2,1), (1,2,-3), (12, 34, 56), (78, 89, 100)]:
# 请在下面编写代码
# ********** Begin ********** #
if pow(b,2)-4*a*c>=0:
root1=(-b+pow(pow(b,2)-4*a*c,0.5))/(2*a)
root2=(-b-pow(pow(b,2)-4*a*c,0.5))/(2*a)
else:
root1=None
root2=None
# ********** End ********** #
# 请不要修改下面的代码
print(root1, root2)
print('n***********************n')
#第七题
for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:
# 请在下面编写代码
# ********** Begin ********** #
if x>6:
fx=4*x+1
elif x>4:
fx=3*x-4
elif x>=2:
fx=pow(x,3)
elif x>-2:
fx=abs(x)
elif x>=-6:
fx=pow(x,2)
elif x>=-8:
fx=x+3
else :
fx=x-2
# ********** End ********** #
# 请不要修改下面的代码
print_(fx)
第2关:循环结构基础实训
#第一题
#请在下面编写代码
# ********** Begin ********** #
print('摄氏温度tt华氏温度')
print('*'*20)
for temp in range(-40, 55, 5):
print(str(temp)+'tt'+str(9 * temp / 5 + 32))
# ********** End ********** #
#请不要修改下面的代码
print('n***********************n')
#第二题
numbers = []
# 请在下面编写代码
# ********** Begin ********** #
i = 0
while i <= 300:
if i % 2 == 0 and i % 3 == 0 and i % 5 == 0:
numbers.append(i)
i += 1
# ********** End ********** #
# 请不要修改下面的代码
print(numbers)
print('n***********************n')
#第三题
# 请在下面编写代码
# ********** Begin ********** #
sum = 0
for i in range(1, 101):
sum += i
# ********** End ******
# ********** End ********** #
# 请不要修改下面的代码
print(sum, 't', 100*(100+1)//2)
#第四题
# 请在下面编写代码
# ********** Begin ********** #
fac = 1
for i in range(1, 31):
fac *= i
# ********** End ********** #
# 请不要修改下面的代码
print(fac)
print('n***********************n')
#第五题
for num in r:
#请在下面编写代码
# ********** Begin ********** #
prime = True
for i in range(2,num-1):
if num % i == 0:
prime = False
break
print(prime)
# ********** End ********** #
# 请不要修改下面的代码
print('n***********************n')
#第六题
sum = 0
avg = 0
for num in r:
# 请在下面编写代码
# ********** Begin ********** #
sum += num
avg = sum / len(r)
# ********** End ********** #
# 请不要修改下面的代码
print(sum, 't', avg)
第3关:函数基础实训
#第一题
def sumInt(n):
#请在下面编写代码
# ********** Begin ********** #
summary=0
if n<0:
summary=None
else:
for i in range(1,n+1):
summary+=i
# ********** End ********** #
#请不要修改下面的代码
return summary
#第二题
def factorial(n):
#请在下面编写代码
# ********** Begin ********** #
fac=1
if n<0:
fac=None
else:
for i in range(1,n+1):
fac*=i
# ********** End ********** #
#请不要修改下面的代码
return fac
#第三题
def isPrime(n):
# 请在下面编写代码
# ********** Begin ********** #
isprime=True
if n==1:
isprime=False
else:
for i in range(2,int(pow(n,0.5))+1):
if n%i==0:
isprime=False
# ********** End ********** #
# 请不要修改下面的代码
return (isprime)
#第四题
def f(x):
# 请在下面编写代码
# ********** Begin ********** #
if x>6:
fx=4*x+1
elif x>4:
fx=3*x-4
elif x>=2:
fx=pow(x,3)
elif x>-2:
fx=abs(x)
elif x>=-6:
fx=pow(x,2)
elif x>=-8:
fx=x+3
else :
fx=x-2
# ********** End ********** #
# 请不要修改下面的代码
return int(fx)
#第五题
def tax(salary):
#请在下面编写代码
# ********** Begin ********** #
if salary<0:
salaTax=None
elif salary<47450:
salaTax=salary*0.22
elif salary<114650:
salaTax=salary*0.25
elif salary<174700:
salaTax=salary*0.28
elif salary<311950:
salaTax=salary*0.33
else:
salaTax=salary*0.35
# ********** End ********** #
# 请不要修改下面的代码
return salaTax
1是素数吗?为什么?
不是。因为整数有一个性质,就是分解质因数的唯一性,及把一个大于1的整数分解质因数,他的形式是唯一的。而如果1是素数,则分解的形式就唯一的了,因为可以乘若干个1。所以规定1不是素数。
注意:2是素数
第4关:控制结构综合实训
#第一题
def rankHurricane(velocity):
#请在下面编写代码
# ********** Begin ********** #
if velocity<74:
rank=None
elif velocity<96:
rank=1
elif velocity<111:
rank=2
elif velocity<131:
rank=3
elif velocity<155:
rank=4
else:
rank=5
# ********** End ********** #
#请不要修改下面的代码
return rank
#第二题
def validCreditCard(num):
#请在下面编写代码
# ********** Begin ********** #
valid = False
if 1e+8 > num > 1e+7:
a=0
b=0
b1=0
while not(num==0):
a+=num%10
b+=num%100//10
num//=100
b=b*2
b1+=b%10+b//10
b=0
if (a+b1)%10==0:
valid = True
# ********** End ********** #
#请不要修改下面的代码
return valid
#第三题
def ISBN(n):
# 请在下面编写代码
# ********** Begin ********** #
total=0
num = n
for i in range(2, 11):
digit = num % 10
total += i * digit
num //= 10
strn = str(n)
if len(strn) < 9:
strn = '0'*(9-len(strn)) + strn
trueISBN = ''
if total % 11 == 1:
trueISBN = strn + 'X'
elif total % 11 == 0:
trueISBN = strn + '0'
else:
trueISBN = strn + str(11 - (total % 11))
# ********** End ********** #
# 请不要修改下面的代码
return (trueISBN)
#第四题
def day(y, m, d):#计算y年m月d日是星期几
# 请在下面编写代码
# ********** Begin ********** #
y0=y-(14-m)//12
x=y0+y0//4-y0//100+y0//400
m0=m+12*((14-m)//12)-2
d0=(d+x+31*m0//12)%7
# ********** End ********** #
# 请不要修改下面的代码
return d0
def isLeapYear(year): #判断year年是否闰年
# 请在下面编写代码
# ********** Begin ********** #
if y%4==0 and y%100!=0 or y%400==0:
return(0)
else:
return(1)
# ********** End ********** #
# 请不要修改下面的代码
def calendar(y, m): #打印y年m月日历
print(' {}年{}月'.format(y,m))
print('SutMtTutWtThtFtSa')
# 请在下面编写代码调用函数计算y年m月1日是星期几保存在变量date中
# ********** Begin ********** #
date=day(y,m,1)
# ********** End ********** #
days = 0
# 请在下面编写代码计算y年m月的天数
# ********** Begin ********** #
if m==2:
if isLeapYear(y)==0:
days=29
else:
days=28
elif m in [1,3,5,7,8,10,12]:
days=31
else:
days=30
# ********** End ********** #
count = date # y年m月1日是星期几
for i in range(date):
print('t', end='')
for d in range(1, days + 1):
print(str(d) + 't', end="")
count = (count + 1) % 7
if count == 0:
print()
print()
# 请不要修改下面的代码
#第五题
def ramanujan(n):
results = []
#请在下面编写代码
# ********** Begin ********** #
for a in range(1, n + 1):
a3 = a * a * a
if a3 > n:
break
# Start at a to avoid print out duplicate.
for b in range(a, n + 1):
b3 = b * b * b
if a3 + b3 > n:
break;
# Start at a + 1 to avoid printing out duplicates.
for c in range(a + 1, n + 1):
c3 = c * c * c
if c3 > a3 + b3:
break
# Start at c to avoid printing out duplicates.
for d in range(c, n + 1):
d3 = d * d * d
if c3 + d3 > a3 + b3:
break
if c3 + d3 == a3 + b3:
result = str(a3+b3) + ' = ' + str(a) + '^3 + ' + str(b) + '^3 = ' + str(c) + '^3 + ' + str(d) + '^3'
results.append(result)
# ********** End ********** #
# 请不要修改下面的代码
return results
#第六题
def unit_to_word(u): #将0~9的数字转换成英文,并返回转换后的英文
# 请在下面编写代码
# ********** Begin ********** #
convert_table = {0: "zero",
1: "one",
2: "two",
3: "three",
4: "four",
5: "five",
6: "six",
7: "seven",
8: "eight",
9: "nine",}
return convert_table[u]
# ********** End ********** #
# 请不要修改下面的代码
def tens_to_word(t):
# 请在下面编写代码
# ********** Begin ********** #
convert_table = {
0: "",
10: "ten",
11: "eleven",
12: "twelve",
13: "thirteen",
14: "fourteen",
15: "fifteen",
16: "sixteen",
17: "seventeen",
18: "eighteen",
19: "nineteen",
2: "twenty",
3: "thirty",
4: "forty",
5: "fifty",
6: "sixty",
7: "seventy",
8: "eighty",
9: "ninety",}
if 9 < t < 20:
return convert_table[t]
else:
tens = convert_table[t//10] + " " + unit_to_word(t%10)
return tens.lstrip()
# ********** End ********** #
# 请不要修改下面的代码
def hundreds_to_word(h): #利用unit_to_word、tens_to_word进行转换,并返回转换后结果的函数
# 请在下面编写代码
# ********** Begin ********** #
if h > 99:
word = unit_to_word(h//100) + " hundred"
tens = h % 100
if tens == 0:
return word
else:
return word + " and " + tens_to_word(tens)
else:
return tens_to_word(h)
# ********** End ********** #
# 请不要修改下面的代码
if __name__ == '__main__':
for v in [60, 74, 95, 96, 110, 111, 130, 131, 154, 170]:
rank = rankHurricane(v)
print(rank)
print('n***********************n')
for num in [1234567, 43589795, 87539319, 123456789]:
valid = validCreditCard(num)
print(valid)
print('n***********************n')
for num in [201314525, 488888913, 977889994, 753231846, 701134069]:
trueISBN = ISBN(num)
print(trueISBN)
print('n***********************n')
for (y,m) in [(2017,8), (2017,10),(2015,8), (2017,2), (2016,2)]:
calendar(y, m)
print('---------------------------')
print('n***********************n')
for num in [2000, 10000, 100000]:
st = ramanujan(num)
for item in st:
print(item)
print('n***********************n')
for test in [0, 5, 19, 23, 100, 700, 711, 729]:
print(test, "=>", hundreds_to_word(test))
运算符优先级得注意,在一些表达式灵活运用
计算某年某月第一天是星期几



