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)

posted @ 2022-10-30 15:50  0dot7  阅读(1346)  评论(0编辑  收藏  举报