第六章练习:
1. 题库:加密数据
raw_number = [int(i) for i in list(input())]
password = [(i + 5) % 10 for i in raw_number]
password.reverse()
password = [str(i) for i in password]
print(''.join(password))
2.题库:高度反弹
h=float(input())
n=int(input())
ans=2*h
cnt=2
while(cnt<n):
h = 0.5 * h
ans+=h
cnt=cnt+1
print("%.2f"%ans)
3.题库:找学生
from math import floor, ceil
stu_list = [['201801','zhangyi'],['201802','zhanger'],['201803','zhangsan'],['201804','zhangsi'],
['201805','wangyi'],['201806','wanger'],['201807','wangsan'],['201808','wangsi'],['201809','liyi'],
['201810','lier'],['201811','lisan'],['201812','lisi'],['201813','zhaoyi'],['201814','zhaoer'],
['201815','zhaosan'],['201816','zhaosi'],['201817','zhouyi'],['201818','zhouer'],['201819','zhousan'],['201820','zhousi']]
def binary_search(keyword, data):
if len(data) == 0:
return None
mid=ceil(len(data)/2)
if keyword == data[mid - 1][0]:
return ''.join(data[mid - 1])
if keyword > data[mid - 1][0]:
return binary_search(keyword, data[mid:])
if keyword < data[mid - 1][0]:
return binary_search(keyword, data[:mid])
stu_num = input()
result = binary_search(stu_num, stu_list)
print(result)
4.题库:数列求和
n=eval(input())
ans = 0
a = 2
b = 1
for i in range(n):
ans+=a/b
t=a
a=a+b
b=t
print('%.4f'%ans)
-
题库:累积求和
cnt=0 sum=0 while True: num = input() if num == "#": break cnt = cnt + 1 sum += int(num) print(cnt,end=" ") print(sum,end="")
6.题库:回文素数
def is_palindrome(num):
num = list(str(num))
num_copy = num.copy()
num.reverse()
if num == num_copy:
return True
return False
def is_prime(num):
for i in range(2, num):
if num % i == 0:
return False
return True
n=eval(input())
if(type(n)==int and n>0):
for i in range(2,n):
if(is_palindrome(i) and is_prime(i)):
print(i,end=" ")
else:
print("illegal input")
7. 题库:组合数字
n, m = map(int,input().split(" "))
if n >= m or m<0 or n>9 or m>9or len(range(n, m)) < 3:
print('illegal input')
else:
for i in range(n, m):
if i != 0:
for j in range(n, m):
for k in range(n, m):
if i != j and j != k and i != k:
print(f'{i}{j}{k}',end=" ")
8.题库:颜色混合器
primary_color_1 = input()
primary_color_2 = input()
primary_colors = ['red', 'blue', 'yellow']
mix_colors = {
'bluered': 'purple',
'redyellow': 'orange',
'blueyellow': 'green'
}
if primary_color_1 not in primary_colors or primary_color_2 not in primary_colors:
print('error')
else:
input_colors = [primary_color_1, primary_color_2]
input_colors.sort()
input_colors = ''.join(input_colors)
print(mix_colors[input_colors])
9.题库:轮盘赌的颜色
n = eval(input())
result=''
if n < 0 or n > 36:
result = 'error'
elif(n==0):
result="green"
elif(1<=n<=10 or 19<=n<=28):
if(n%2!=0):
result="red"
else:
result="black"
elif(11<= n <=18 or 29<=n<=36):
if(n%2!=0):
result="black"
else:
result="red"
print(result)
10.题库:月份对应的季节
n = eval(input())
result=''
if n < 1 or n > 12:
result = 'error'
elif(3<=n<=5):
result="spring"
elif(6<= n <=8):
result="summer"
elif(9<= n <=11):
result="autumn"
else:
result = "winter "
print(result)
11.题库:字符统计
s = input()
res = [0,0,0,0]
char_range = [chr(code) for code in range(ord('a'), ord('z'))]
char_range += [chr(code) for code in range(ord('A'), ord('Z'))]
number_range = [str(num) for num in range(10)]
for char in s:
if char in char_range:
res[0] += 1
elif char == ' ':
res[1] += 1
elif char in number_range:
res[2] += 1
else:
res[3] += 1
print(' '.join([str(i) for i in res]))
- 题库:分段函数求值
from math import sqrt
def f(x):
if x < 20:
return 6 * (x**2) + 1.
elif 20 <= x and x < 40:
return sqrt(3*x - 60.)
else:
return 100 / (x + 1.)
x = float(input())
f_x = f(x)
print("%.2f" % f_x)
-
题库:美元人民币转换
money = input() def One(money): if money[0]=="$": sum = eval(money[1:])*6.78 print("&%.2f" % sum) elif money[0] == "&": sum = eval(money[1:])/6.78 print("$%.2f" % sum) else: print("Error") def Three(money): if money[0:3]=="USD": sum = eval(money[3:])*6.78 print("RMB%.2f" % sum) elif money[0:3] == "RMB": sum = eval(money[3:])/6.78 print("USD%.2f" % sum) else: print("Error") if money[0] == "$"or money[0] =="&": One(money) elif money[0:3] == "RMB"or money[0:3] =="USD": Three(money) else: print("Error")
-
题库:判断正方形
a= eval(input())
b= eval(input())
if(a==b and a>0 and b>0):
print("It's a square")
elif(a!=b and a>0 and b>0):
print("It's a rectangle")
else:
print("illegal data")
15.题库:评奖系统
a= eval(input())
b= eval(input())
if(a>=99 and b>=99):
print("You won a scholarship of 500 yuan!")
elif(a<30 and b<30 ):
print("You need to relearn!")
-
题库:统计字符串列表中每个字母出现的次数 sep
lst = eval(input()) counts = [0] * 26 for i in lst: for j in i: counts[ord(j)-ord('a')]+=1 for i in range(26): if counts[i]>0: print(chr(ord('a')+i),counts[i],sep=',')
17.题库:python水仙花数
num = int(input())
flag = False
for i in range(100, num + 1):
i = str(i)
if int(i[0]) ** 3 + int(i[1]) ** 3 + int(i[2]) ** 3 == int(i):
print(i)
flag = True
if flag == False:
print("none")
- 题库:成绩转换
n=eval(input())
if(n>=90):
print("A")
elif(80<=n<90):
print("B")
elif(70<=n<80):
print("C")
elif(60<=n<70):
print("D")
else:
print("E")
第七章练习:
1、题库:统计字符串出现的次数(字典-2)
lst = []
while True:
str = input()
if str == 'q':
break
lst.append(str)
s = set(lst)
res = {}
for item in s:
res[item] = lst.count(item)
result = sorted(res.items(), key=lambda kv:kv[1], reverse=True)
print(result[0][0], result[0][1])
2.题库:统计字符串的出现次数
lst=list(input().split(" "))
s = set(lst)
res = {}
for item in s:
res[item] = lst.count(item)
result = sorted(res.items(), key=lambda kv:(-kv[1],kv[0]))
prev_v=-1
for k, v in result:
prev_v = v if prev_v == -1 else prev_v
if prev_v == v:
print(k, v)
3、题库:计算平均成绩
name, english, python, math = input().split(' ')
stu = {
'name': name,
'english': float(english),
'python': float(python),
'math': float(math),
'avg': sum([float(english), float(python), float(math)]) / 3
}
print(stu['name'], end=' ')
for item in sorted([stu['english'], stu['python'], stu['math']], reverse=True):
print('%.2f' % item, end=' ')
print('%.2f' % stu['avg'])
4、题库:获取国家的GDP值
GDP = {}
while True:
str = input()
if str == 'ok':
break
k, v = str.split(' ')
GDP[k] = int(v)
dict_keys = list(GDP.keys())
dict_values = list(GDP.values())
dict_keys.sort()
dict_values.sort()
print(dict_keys)
print(dict_values)
print('yes' if 'India' in dict_keys else 'no')
print(sum(dict_values))
第八章练习
1、题库:把姓名和成绩列表合并后按照成绩升序排列
lst1=input().split(",")
lst2=eval(input())
lst3=[]
for i,j in zip(lst1,lst2):
lst = []
lst.append(i)
lst.append(j)
lst3.append(lst)
lst3=sorted(lst3,key=lambda x:x[1])
print(lst3)
2、题库:分段函数求值
import math
x=eval(input())
if x<20:
y=6*x*x+1
elif 20<=x<40:
y=math.sqrt(3*x-60)
else:
y=100/(x+1)
print("%.2f"%y)