Python 练习题

在这里插入图片描述
A. 集合

在这里插入图片描述

def is_perfect_number(n):
    factors = []
    for i in range(1, n):
        if n % i == 0:
            factors.append(i)
    
    if sum(factors) == n:
        return "YES"
    else:
        return "NO"

# 读取输入的数字
n = int(input("请输入一个整数: "))

# 调用函数判断并输出结果
result = is_perfect_number(n)
print(result)

在这里插入图片描述

import calendar

# 读取输入的年份和月份
year, month = map(int, input().split(','))

# 使用calendar模块获取指定年份和月份的天数
days = calendar.monthrange(year, month)[1]

# 输出结果
print(days)

在这里插入图片描述

# 读取输入的数字列表
numbers = input().split(',')

# 将数字列表转换为整数类型
numbers = [int(num) for num in numbers]

# 计算所有数字的平方和
sum_of_squares = sum([num**2 for num in numbers])

# 输出结果
print(sum_of_squares)
  1. B 对

在这里插入图片描述

在这里插入图片描述

def is_prime(n):
    if n <= 1:
        print ("NO")
    	return
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            print ("NO")
    		return
    print ("YES")
	return

# 读取输入的数字
x = eval(input())

# 调用函数判断并输出结果
is_prime(x)

在这里插入图片描述

a,b,c = map(int, input().split(','))
result = pow(a,b,c)
print(result)

在这里插入图片描述

# 读取输入的成绩
score = int(input())

# 判断成绩等级并输出评价结果
if score >= 90:
    print("S")
elif score >= 80:
    print("A")
elif score >= 70:
    print("B")
elif score >= 60:
    print("C")
else:
    print("D")

在这里插入图片描述

# 读取评委个数
n = int(input())

# 读取评委得分
scores = []
for _ in range(n):
    score = float(input())
    scores.append(score)

# 计算成绩
total_score = sum(scores) - max(scores) - min(scores)
average_score = total_score / (n - 2)

# 输出结果
print('Final Score=%.1f' % average_score)
  1. D

在这里插入图片描述

在这里插入图片描述

# 读取输入的正整数
n = int(input("请输入一个正整数: "))

# 初始化变量
result = 0
sign = 1

# 计算数列的值
for i in range(1, n+1):
    result += sign * i
    sign = -sign

# 输出结果
print(result)
  1. A
    在这里插入图片描述

  2. C
    请添加图片描述

  3. A
    在这里插入图片描述

  4. 设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。编程实现:输入一个数,判断它是不是回文数。如果是回文数,输出YES;如果不是,输出NO.

x=input()
if x==x[::-1]:
    print("YES")
else:
    print("NO")
  1. 补全函数,实现以下功能:输入一个字符串,将字符串的内容反转后输出。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬def fanzhuan(s):
#补全函数‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
def fanzhuan(s):
    print(s[::-1])
s=input()
fanzhuan(s)
  1. 由键盘输入两段字符串,逗号隔开。针对第一段字符串中的每个不同的字符,统计它们在第二个字符串中出现的总次数。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬例如,输入‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬aba,abcabcabcbc第一个字符串为"aba",在第二个字符串中出现的次数为4,则它们出现的总次数为7。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
s=input()
ls=s.split(',')
ss=set(ls[0])
count=0
for i in ss:
    count+=ls[1].count(i)
print(count)
  1. 输入一个自然数,判断它是奇数还是偶数,并输出判断结果。输入一个自然数,若为奇数则输出ODD,偶数则输出EVEN。输入输出格式如下:输入 输出示例133 is ODD.示例244 is EVEN.
x=eval(input())
if x%2==0:
    print("{} is EVEN.".format(x))
else:
    print("{} is ODD.".format(x))
  1. 输入两个自然数a和b,判断b是否是a的因数,输出判断结果。
a,b=eval(input()) 
if a%b==0: 
    print("{} is a factor of {}.".format(b,a))
else:
    print("{} is not a factor of {}.".format(b,a))
  1. 用户输入一个整数N≥0,计算其阶乘N!N!=123*…*N
x=eval(input())
if x==0:
    print(1)
else:
    y=1
    for i in range(1,x+1):
        y*=i
    print(y)
  1. 按照以下方法生成数列,并计算数列之和。用户输入三个数字,逗号隔开,如:a,b,c。其中,a为数列第一个数;b为数列的步长(数列中的数按步长递增);c为最后一个数的上限(最后一个数不得超过c)。例如,用户输入:1,3,20则根据这三个数字可以生成一个数列:1,4,7,10,13,16,19计算数列中所有数字之和,并按下面的格式输出:1+4+7+10+13+16+19=70
x,y,z=eval(input())
tt=0
s=''
for i in range(x,z+1,y):
    tt+=i
    s=s+str(i)+'+'
s=s[:-1]+'='+str(tt)
print(s)
  1. “水仙花数” 是指一个三位整数,其各位数字的 3 次方和等于该数本身。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬例如:ABC 是一个 “3 位水仙花数”,则:A的三次方+B的三次方+C的三次方 = ABC。‬‬‬‬‬‬‬请按照从小到大的顺序输出所有的 3 位水仙花数,请用"逗号"分隔输出结果。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
s = ""
for i in range(100, 1000):
    t = str(i)
    if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :
        s += "{},".format(i)
print(s[:-1])
  1. 幼儿园体检要对多个小朋友的体重做评估,对超出平均体重的小朋友需要提示他们进行锻炼。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬编程实现:输入多个小朋友的体重(小朋友人数大于1),输出比平均体重更重的那些体重。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
x=eval(input())
y=len(x)
sum=0
for i in range(0,y):
    sum+=x[i]
mean=sum/y
ls=[]
for i in range(0,y):
    if x[i]>mean:
        ls.append(str(x[i]))
print(','.join(ls))
  1. 输入两个整数a和b,计算[a,b]区间内所有奇数的和。输入形式:在同一行输入两个整数a和b,以英文逗号分隔, 末尾没有逗号
s=0
a,b=eval(input())
if a>b:
    a,b=b,a
for i in range(a,b+1): 
    if i%2!=0:
        s=s+i 
print("The sum of odds between [{},{}] is {}.".format(a,b,s))
  1. 编程实现输出指定范围内的素数,以逗号间隔。指定范围由用户输入,例如用户输入a,b则输出a,b之间的所有素数,逗号隔开。输入输出示例输入输出示例11,102,3,5,7,示例2100,150101,103,107,109,113,127,131,137,139,149,注意:1、输入的两个数字a,b,必然是a<b,无需判断大小关系。2、输出的素数序列,最后一个素数后面有一个逗号,需要保留。3、输出的素数可以等于a或者b
a,b=eval(input())
for i in range(a,b+1):
    if i>1:
        for j in range(2,i):
            if i%j==0:
                break
        else:
            print(i,end=,)
  1. 欧几里得算法又称辗转相除法,用于计算两个非负整数a,b的最大公约数。假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里得算法,是这样进行的:1997 / 615 = 3 (余 152)615 / 152 = 4(余7)152 / 7 = 21(余5)7 / 5 = 1 (余2)5 / 2 = 2 (余1)2 / 1 = 2 (余0)至此,最大公约数为1。以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数,所以就得出了 1997 和 615 的最大公约数 1。在获得了最大公约数之后,再用两数的乘积除以最大公约数,即可得到最小公倍数。编写函数,以两个正整数作为参数,输出它们的最大公约数和最小公倍数。输入输出示例115,355,105示例224,168,48注意:1、输入的两个整数需判断大小关系。2、输出时,先输出最大公约数再输出最小公倍数,逗号隔开。
def gcd(x,y):
    if x<y:
        a,b=y,x
    else:
        a,b=x,y
    while b != 0:
        a,b = b,a%b
    return a,x*y//a
x,y=eval(input())
z=gcd(x,y)
print("{},{}".format(z[0],z[1]))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秀秀_heo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值