Python 二级模拟操作题(五)

时间:2023-02-13 12:07:43

1.编写程序,从键盘上获得用户连续输入且用逗号分隔的若干个数字(不必以逗号结尾),计算所有输入数字的和并输出

提示代码:

n = input()
nums = ____①____ 
s = 0
for i in nums:
    ____②____
print(s)

代码:

n = input("")
nums = n.split(",")
s = 0
for i in nums:
    s += eval(i)

print(s)

2.编写程序,获得用户输入的数值 M 和 N,求 M 和 N 的最大公约数

提示代码:

def GreatCommonDivisor(a,b):
    if a > b:
        a,b = b,a
    r = 1
    while r != 0:
        ____①____
        a = b
        b = r
    return a
m = eval(input())
n = eval(input())
print(____②____)

代码:

def GreatCommonDivisor(a,b):
    if a > b:
        a,b = b,a
    r = 1
    while r != 0:
        r = a % b
        a = b
        b = r
    return a
m = eval(input("aaa:"))
n = eval(input("bbb:"))
print(GreatCommonDivisor(m,n))

3.jieba 是一个中文分词库,一些句子可能存在多种分词结果,请补充横线处代码,产生字符串 s 可能的所有分词结果列表

提示代码:

____①____
s = "世界冠军运动员的乒乓球拍卖完了"
ls = jieba.lcut(____②____)
print(ls)

代码:

import jieba
s = "世界冠军运动员的乒乓球拍买完了"
ls = jieba.lcut(s,True)
print(ls)

4.使用 turtle 库的 turtle.circle() 函数、turtle.seth() 函数和 turtle.left() 函数绘制一个四瓣花图形,效果如下图所示

Python 二级模拟操作题(五)

提示代码:

import turtle
for i in range(____①____):
    turtle.seth(____②____)
    turtle.circle(200, 90)
    turtle.seth(____③____)
    turtle.circle(200, 90)

代码:

import turtle
for i in range(4):
    turtle.seth(90 * (i + 1))
    #90,180,270,360
    turtle.circle(200,90)
    #-90,0,90,180
    turtle.seth(-90 + i * 90)
    turtle.circle(200,90)

5. 编写程序,实现将列表 ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141] 中的素数去除,并输出去除素数后列表 ls 的元素个数

def is_prime(n):
    for i in range(2,n):
        if n % i == 0:
            return False
    return True

ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141]
for i in ls:
	if is_prime(i) == False:
	    ls.remove(i)
print(len(ls))

6. 古代航海人为了方便在航海时辨别方位和观测天象,将散布在天上的星星运用想象力将它们连接起来,有一半是在古时候已命名,另一半是近代开始命名的
两千多年前古希腊的天文学家希巴克斯命名十二星座,依次为白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、魔蝎座、水瓶座和双鱼座
给出二维数据存储 CSV 文件(SunSign.csv),内容如下:

星座,开始月日,结束月日,Unicode
水瓶座,120,218,9810
双鱼座,219,320,9811
白羊座,321,419,9800
金牛座,420,520,9801
双子座,521,621,9802
巨蟹座,622,722,9803
狮子座,723,822,9804
处女座,823,922,9805
天秤座,923,1023,9806
天蝎座,1024,1122,9807
射手座,1123,1221,9808
魔蝎座,1222,119,9809

请编写程序,读入 CSV 文件中数据,循环获得用户输入,直至用户输入 "exit" 退出。根据用户输入的星座名称,输出此星座的出生日期范围及对应字符形式。如果输入的星座名称有误,请输出“输入星座名称有误!”

代码:

#读入CSV格式数据到列表中
fo = open("SunSign.csv","r", encoding='utf-8')
ls = []

for line in fo:
    line = line.replace("\n","")
    ls.append(line.split(","))

fo.close()

while True:
    InputStr = input("请输入星座名称:") 
    InputStr.strip()
    flag = False
    if InputStr == 'exit':
        break
    for line in ls:
        if InputStr == line[0]:
             print("%s座的生日位于%s-%s之间" %(InputStr, line[1], line[2]))
             flag = True
    if flag == False:
        print("输入星座名称有误!")