CQU python题库

这篇博客包含了多个Python编程练习题目,涵盖数据加密、高度反弹、找学生、数列求和等主题。从第六章到第八章,包括回文素数、颜色混合、月份与季节对应、字符统计等功能实现,旨在提升读者的Python编程能力和问题解决技巧。
摘要由CSDN通过智能技术生成

第六章练习:

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)
  1. 题库:累积求和

    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]))
  1. 题库:分段函数求值
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)
  1. 题库:美元人民币转换

    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")
    
  2. 题库:判断正方形

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!")
  1. 题库:统计字符串列表中每个字母出现的次数 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")
  1. 题库:成绩转换
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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天也要AC呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值