Python编程题目
Python编程题目
选择结构1:判断成绩等级
点击查看代码
#3 选择结构
grade=eval(input())
# 请在此补全代码 #
# ********** Begin *********#
if 90<=grade<100:
level = "优秀"
elif 80<=grade<90:
level = "良好"
elif 60<=grade<80:
level = "合格"
elif 0<=grade<60:
level = "不及格"
else:
level = "异常"
# ********** End **********#
print(level)
选择结构2:判断某月的天数
点击查看代码
#3 选择结构
year=eval(input())
month=eval(input())
# 请在此补全代码 #
# ********** Begin *********#
if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
days = '31'
elif month == 4 or month == 6 or month == 9 or month == 11:
days = '30'
elif month == 2:
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
days = '29'
else:
days = '28'
else:
days='输入异常'
# ********** End **********#
print(days)
while循环1:求3个数的最大公约数
点击查看代码
#4 while
a=eval(input())
b=eval(input())
c=eval(input())
# 请在此补全代码 #
# ********** Begin *********#
i = min(a,b,c)
while i>0:
if a%i==0 and b%i==0 and c%i==0:
result = i
break
else:
i=i-1
# ********** End **********#
print(result)
while循环2:判断素数
点击查看代码
#5 while素数
import math
m=eval(input())
# 请在此补全代码 #
# ********** Begin *********#
s = math.sqrt(m)
n = int(s)
while n > 1:
if m%n==0:
result=False
break
else:
n=n-1
if n==1:
result=True
# ********** End **********#
print(result)
while循环3:数位计算
点击查看代码
#while
N=eval(input())
# 请在此补全代码 #
# ********** Begin *********#
M = str(N)
result = 1
for i in range(len(M)):
result *= int(M[i])
# ********** End **********#
print(result)
for循环1:数的累加
点击查看代码
#for
import math
N=eval(input())
# 请在此补全代码 #
# ********** Begin *********#
result = 0
for i in range(1,N+1):
result -= (i/10)*math.log10(i/10)
print('%.5f' %result)
# ********** End **********#
for循环2:计算圆周率
点击查看代码
#7 for
N=eval(input())
# 请在此补全代码 #
# ********** Begin *********#
pi = 3
for i in range(1,N+1):
term = 4/(2*i*(2*i+1)*(2*i+2))
pi -= term*(-1)**i
# ********** End **********#
print('%.8f' %pi)
print('%.8f' %abs(term))
for循环3:查找素数
点击查看代码
import math
M=eval(input())
N=eval(input())
# 请在此补全代码 #
# ********** Begin *********#
for i in range(M,N):
s = math.sqrt(i)
j = int(s)
while j>1:
if i%j==0:
break
else:
j=j-1
if j==1:
print(i)
# ********** End **********#
字符串1:基本操作
测试输入:----*hello Nanjing, Hello China----
预期输出:
hello Nanjing, Hello China
2
你好 NANJING, 你好 CHINA
['你好 NANJING', ' 你好 CHINA']
你好 NANJING****************** 你好 CHINA
点击查看代码
#字符串
mystr = input()
# 根据注释信息的提示,完成代码 #
# ********** Begin *********#
#滤除字符串左右两端的*和-,并把结果重新赋给mystr
mystr=mystr.strip('*-')
print(mystr)
#统计字符串中'hello'出现的次数,忽略大小写,次数赋给变量count
count=0
count=mystr.lower().count('hello')
print(count)
#先将字符串转成大写,再所有的'HELLO'替换为'你好',并把结果重新赋给mystr
mystr=mystr.upper()
mystr=mystr.replace('HELLO','你好')
print(mystr)
#按西文','分隔字符串mystr,结果赋给列表变量rs
rs=mystr.split(',')
print(rs)
#将rs中的字符串重新拼接为一个字符串,字串之间用18个’*‘做分隔符,并把结果重新赋给mystr
mystr='******************'.join(rs)
print(mystr)
# ********** End **********#
字符串2:统计文本信息
点击查看代码
#字符串
indian_poem = """If it looks like a duck,
swims like a duck,
and quacks like a duck,
then it probably is a duck."""
# 根据注释信息的提示,完成代码 #
# ********** Begin *********#
#统计文本的行数
if indian_poem.endswith('\n'):
lines=indian_poem.count('\n')
else:
lines=indian_poem.count('\n')+1
print(lines)
#统计文本中各类符号的总数,含标点符号
charac_num=len(indian_poem)
print(charac_num)
#统计文本中字符 a 出现的数量
a_num=indian_poem.count('a')
print(a_num)
#统计文本中的单词数量
count_sp = 0
for c in indian_poem:
if c.isspace():
count_sp += 1
words_num=count_sp+1
print(words_num)
# ********** End **********#
列表1:合并列表
点击查看代码
#list
#本关任务:合并两个数据列表为一个列表rs,并对其中的元素进行降序排序。
list1=[100,-3,45,17,9]
list2=[11,23,5,37,6,0,9]
# ********** Begin *********#
list1.extend(list2)
rs = list1
rs.sort(reverse=True)
# ********** End **********#
print(rs)
列表2:模拟队列操作
点击查看代码
#list
#本关任务:用列表模拟队列,即删除数据时只删除位置0的元素,插入数据时只在列表的末尾插入。
#每插入一个元素后,都从队列中删除一个元素
#准备输入的数据
Input_list=[10, 'x', 'hello', 3.14, '老铁', 666]
#队列,已经有少量数据
queue=['python',[1,2,3],0]
for item in Input_list:
# ********** Begin *********#
#在队尾追加数据
queue.append(item)
#删除队首元素
queue.pop(0)
# ********** End **********#
print(queue)
列表3:二维列表操作
点击查看代码
#list 二维列表
#本关任务:求一个向量与二维矩阵的乘积,结果保存在列表result中。
#向量乘以矩阵的一列,对应位置元素相乘,再将多个乘积相加
#例如[33,66,99]先与11,44,77相乘再相加,33*11+66*44+99*77
vector1=[33,66,99]
matrix=[[11,22,33], [44,55,66], [77,88,99]]
result=[]
# ********** Begin *********#
for i in range(len(matrix)):
temp=0
for j in range(len(matrix)):
temp += vector1[j]*matrix[j][i]
result.append(temp)
# ********** End **********#
print(result)
字典1:基本操作
点击查看代码
#dictory字典基本操作
#本关任务:创建、合并、打印字典。
# 根据注释信息的提示,完成代码 #
# ********** Begin *********#
#建立字典d1,包含内容 "语文":89, "英文":93,"数学":66
d1 = {"语文":89,"英文":93,"数学":66}
#建立字典d2,包含内容 "Python":100, "物理":80,"数学":99
d2 = {"Python":100,"物理":80,"数学":99}
#合并两个字典,结果保存到d1中
d1.update(d2)
#打印d1中的全部数据,每个键-值对打印一行,格式示例"语文:89",中间没有空格,冒号为英文冒号
for k,v in d1.items():
print("{}:{}".format(k,v))
# ********** End **********#
字典2:字典的应用
点击查看代码
#dictory字典应用
#本关任务:统计文本中各类符号的出现次数,用字典变量记录,打印出现次数最高的前5个词,每个词一行,打印格式示例 我:5,其中冒号为西文冒号。
#text ="""我说道:“爸爸,你走吧。”他往车外看了看,说:“我买几个橘子去。你就在此地,不要走动。”我看那边月台的栅栏外有几个卖东西的等着顾客。走到那边月台,须穿过铁道,须跳下去又爬上去。父亲是一个胖子,走过去自然要费事些。我本来要去的,他不肯,只好让他去。我看见他戴着黑布小帽,穿着黑布大马褂,深青布棉袍,蹒跚地走到铁道边,慢慢探身下去,尚不大难。可是他穿过铁道,要爬上那边月台,就不容易了。"""
text =input()
words_list = list(text)
words_dict={}
# ********** Begin *********#
#统计出现次数
for i in words_list:
words_dict[i] = words_list.count(i)
# ********** End **********#
items=list(words_dict.items())
#逆序排序
items.sort(key=lambda x:x[1], reverse=True)
# ********** Begin *********#
#打印记录
for i in range(0,5):
print("{}:{}".format(items[i][0],items[i][1]))
# ********** End **********#
函数1:定义与调用
点击查看代码
#函数
#任务:定义一个函数,将一个二维列表拉直转化为一维列表(扁平化)
def flatten(alist):
"""二维列表扁平化
"""
result=[]
# ********** Begin *********#
for i in range(len(alist)):
for j in range(len(alist[i])):
result.append(alist[i][j])
# ********** End **********#
return result
#创建一个二维列表
M=eval(input())
N=eval(input())
matrix = [list(range(-10,M*2,2)), list(range(333,333+N))]
# ********** Begin *********#
#调用函数,结果保存到rs
rs = flatten(matrix)
# ********** End **********#
print(rs)
函数2:生成fibonacci数列
点击查看代码
#函数
"""
1)定义一个函数,生成并返回fibonacci数列的前N项,[0,1,1,2,3,5,8...]
2) 求该数列前N项数据的和,保存在total
"""
num=eval(input())
def gen_list(N):
# ********** Begin *********#
list=[0]
a,b = 1,1
for i in range(1,N):
if i == 1 or i == 2:
f = 1
else:
f = a + b
b = a
a = f
list.append(f)
return list
# ********** End *********#
print(gen_list(num))
total=0
# ********** Begin *********#
#求该数列前N项数据的和
total = sum(gen_list(num))
# ********** End *********#
print(total)
综合1:检查车牌
点击查看代码
#综合:检查车牌编号
#任务:检查江苏普通车牌编号的合法性
#要求第一位必须是 苏,第2位必须是A-Z大写字母中的一个
#要求总长度为7,后续5位,由阿拉伯数字和大写字母构成
#合法,返回True,非法返回False
def check_license(vehicle_license):
# ********** Begin *********#
vl=str(vehicle_license)
vl5=vl[-5:]
if len(vl)==7 and vl[0]=='苏' and vl[1].isupper() and ((vl5.isupper() and vl5.isalnum()) or vl5.isdigit()):
return True
else:
return False
# ********** End *********#
license_js=input()
rs = check_license(license_js)
print(rs)
综合2:百钱买百鸡
点击查看代码
#综合
"""
编程实现:百钱买百鸡
公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,
用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有
请打印输出全部方案
"""
money=100
# ********** Begin *********#
for x in range(1,101):
for y in range(1,101):
for z in range(1,101):
if x+y+z==100 and x*5+y*3+z/3==100:
print(x,y,z)
# ********** End **********#
综合3:文本简单加密
点击查看代码
#综合
#任务,加密
#提示:ord()返回字母的ascii码,chr()根据ascii值返回对应字母
scarborough_fair="""Are you going to scarborough fair
你要去斯卡布罗集市吗
Parsley sage rosemary and thyme
芜荽 鼠尾草 迷迭香和百里香
Remember me to one who lives there
给我捎个口信给一位居住在那里的人
He once was a true love of mine
他曾经是我真爱的恋人
Tell him to make me a cambric shirt
告诉他为我做一件细麻纱布衬衫
Parsley sage rosemary and thyme
芜荽 鼠尾草 迷迭香和百里香
Without no seams nor needle work
要做的天衣无缝
Then he'll be a true love of mine
那么他就是我真爱的人"""
#将歌词转为列表
song_list = scarborough_fair.split('\n')
# ********** Begin *********#
#提取歌词中的全部英文歌词,存入列表English中,每行歌词为一个列表元素
English = song_list[::2]
# ********** End *********#
print(English[-2:])
#加密变换
#每个字母,都用位于字母表中其后第2个位置的字母替换,即a用c换,b替换为d,
#y替换为a,z替换为b,大写字母类似处理,用后2位的大写字母替换
#按行打印变换后的结果
# ********** Begin *********#
for i in English:
print(''.join(map(lambda x: chr(ord(x)+2-26*int(x=='y' or x=='z') or x=='Y' or x=='Z') if x.isalpha() else x, i)))
# ********** End *********#
综合4:处理文件中的数据
点击查看代码
#综合:处理文件中的数据
#任务
import csv
def read_by_csv(filename):
"""读取csv数据文件,文件的第一行是表头,舍弃,从第2行开始返回数据列表,
每行数据对应列表中一个元组
"""
content=[]
with open(filename,'r',newline='') as csvfile:
reader = csv.reader(csvfile,delimiter=',')
header = next(reader)
for line in reader:
content.append(line)
return content
MAX=0
AVG=0
# ********** Begin *********#
#调用read_by_csv函数,读取数据文件'step2/stocks.csv',结果保存到变量data
data = read_by_csv('step2/stocks.csv')
# ********** End **********#
print(data[-1])
# ********** Begin *********#
#求最后一列数据中的最大值,赋给变量MAX
list=[]
for i in data:
list.append(i[-1])
MAX=float(max(list))
#求第二列数据的平均值,赋给变量AVG
sum=0.0
for i in data:
sum+=float(i[1])
AVG=sum/len(data)
# ********** End **********#
print('%.1f' %MAX)
print('%.10f' %AVG)
本文来自博客园,作者:0dot7,转载请注明原文链接:https://www.cnblogs.com/0dot7/p/16841433.html
文章如有错误,欢迎各位师傅指正!!!
免责声明请勿利用文章内的相关技术从事非法测试,由于传播、利用文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效