一、分支与循环部
1、从键盘输入三个同学的成绩,然后找出最高分。
a = int(input("第一个数"))
b = int(input("第二个数"))
c = int(input("第三个数"))
if(a>b and a>c):
print("最高分为: ",a)
elif(b>a and b>c):
print("最高分为: ",b)
elif(c>a and c>b):
print("最高分为: ",c)
else:
print("相等")
2、输入三个同学的成绩,然后由大到小排序。
a = int(input("第一个数"))
b = int(input("第二个数"))
c = int(input("第三个数"))
if a>b and a>c:
max=a
if b>=c:
mid=b
min=c
else:
mid=c
min=b
elif b>c and b>a:
max=b
if c>=a:
mid=c
min=a
else:
mid=a
min=c
else:
max=c
if a>=b:
mid=a
min=b
else:
min=a
mid=b
print("从小到大: ",max, mid, min)
3、求出1000以内的所有完数,如6=1+2+3除了它自身以外的因子之和等于它本身叫完数。
for i in range(1,1001):
sum = 0 #定义初始的值
for j in range(1,i):
if i % j == 0:
sum +=j
if sum == i:
print(f"{i}是完数")
4、用循环语句求1+22+333+4444+55555的和。
sum = 1 # 初始化总和为1,因为第一个数字是1
for i in range(2, 6): # 从2到5,表示生成22, 333, 4444, 55555这四个数字
x = i # 初始化当前数字为i
for j in range(1, i + 1):
x = x * 10 + i # 通过循环生成重复的数字,例如i=2时,x会变成22;i=3时,x会变成333
sum += x # 将生成的数字x累加到总和sum中
print("1 + 22 + 333 + 4444 + 55555的和为:%d" % sum) # 输出最终的结果
5、求出2000-2100的所有闰年,条件是四年一闰;百年不闰,四百年再闰。
def a(year):
return year % 400 == 0 or (year % 4 == 0 and year % 100 != 0)
b = []
for year in range(2000, 2101):
if a(year):
b.append(year)
print("2000-2100年间的所有闰年:", b)
6、输入两个正整数,并求出它们的最大公约数和最小公倍数。
def gcd(a, b):
while b:
a, b = b, a % b
return a
def lcm(a, b):
return a * b // gcd(a, b)
# 输入两个正整数
num1 = int(input("请输入第一个正整数: "))
num2 = int(input("请输入第二个正整数: "))
# 计算最大公约数和最小公倍数
a = gcd(num1, num2) #最大公约数
b = lcm(num1, num2) #最小公倍数
# 输出结果
print("最大公约数是:", a)
print("最小公倍数是:", b)
7、输出100以内的所有质数。
def a(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
primes = [num for num in range(2, 101) if a(num)]
print(primes)
8、求100以内最大的10个质数的和。
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def sum_of_largest_primes(limit, count):
primes = [num for num in range(limit, 1, -1) if is_prime(num)]
return sum(primes[:count])
limit = 100
count_of_primes = 10
result = sum_of_largest_primes(limit, count_of_primes)
print(result)
9、求1-10所有偶数的和。
a = 0
num = 2
while num <= 10:
a += num
num += 2
print("1到10所有偶数的和为: ",a)
10、将10-20不能被2或3整除的数输出。
a = [a for a in range(10,21) if a % 2 !=0 and a % 3 != 0]
print(a)