0
点赞
收藏
分享

微信扫一扫

Python作业3分支与循环

大柚子top 2022-04-24 阅读 112
python

分支与循环部分练习题:

1、从键盘输入三个同学的成绩,然后找出最高分。
2、输入三个同学的成绩,然后由大到小排序。
3、求出1000以内的所有完数,如6=1+2+3除了它自身以外的因子之和等于它本身叫完数。
4、用循环语句求1+22+333+4444+55555的和。
5、求出2000-2100的所有闰年,条件是四年一闰;百年不闰,四百年再闰。
6、输入两个正整数,并求出它们的最大公约数和最小公倍数。
7、输出100以内的所有质数。
8、求100以内最大的10个质数的和。
9、 求1到10 所有偶数的和。
10、将10-20不能被2或3整除的数输出。

1.从键盘输入三个同学的成绩,然后找出最高分。

print("依次输入三个学生的成绩")
x = int(input())
y = int(input())
z = int(input())
if x > y and x > z :
    print(x)
elif y > x and y > z:
    print(y)
elif z > x and z > y:
    print(z)
else:print("成绩一样")

看到的一个简便方法直接使用max内置函数

print("依次输入三个学生的成绩")
x = int(input())
y = int(input())
z = int(input())
d = max(x,y,z)
print(d)

运行结果:

依次输入三个学生的成绩
98
99
100
100

2.输入三个同学的成绩,然后由大到小排序。

print("输入三个不一样的数字")
x = int(input())
y = int(input())
z = int(input())

if x != y and x != z and z != y:
    if x > y :
        if y > z :
            print(x,y,z)
        elif z > y and z > x :
            print(z,x,y)
        else:print(x,z,y)
    elif x < y :
        if x > z :
            print(y,x,z)
        elif y < z :
            print(z,y,x)
else : print("有数字一样从新输入")

简便方法:

print("输入三个不一样的数字")
x = int(input())
y = int(input())
z = int(input())
d = max(x,y,z)
e = []
e.append(x)
e.append(y)
e.append(z)
e.sort(reverse=True)
print(e)

运行结果:

输入三个不一样的数字
67
77
32
[77, 67, 32]

进程已结束,退出代码为 0

3.求出1000以内的所有完数,如6=1+2+3除了它自身以外的因子之和等于它本身叫完数。

这题我不会所以是搜到了2种方法一个是循环一个是函数

3.1循环:

num = 2
while num < 1000:
	perfectFactor = 0
	n = 1
	while n < num:
		if num % n == 0:
			perfectFactor += n
		n += 1
	if perfectFactor == num:
		print("%d是完数且小于1000." % perfectFactor)
	num += 1

3.2函数:

def main():
    for x in range(1, 1001):
        # **********Program**********
        # 将因子放在列表中
        lists = []
        for factor in range(1, x):
            if x % factor == 0:
                lists.append(factor)
        # **********  End  **********
        if x == sum(lists):
            print("完数为:%d" % x)
            print("它的真因子为:%s" % lists)


if __name__ == '__main__':
    main()

4.用循环语句求1+22+333+4444+55555的和。

5.求出2000-2100的所有闰年,条件是四年一闰;百年不闰,四百年再闰。

for i in range(2000,2100):
    if i % 4 ==0 and i % 100 != 0 or i % 400 ==0:
        print(i)

输出结果:

2000
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
2052
2056
2060
2064
2068
2072
2076
2080
2084
2088
2092
2096

进程已结束,退出代码为 0

7.输出100以内的所有质数。

zhishu = []
for num in range(2,100):
    for n in range(2,num):
        if num % n == 0 :
            break
    else: zhishu.append(num)
print('100以内的质数:')
print(zhishu)

运行结果:

100以内的质数:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

进程已结束,退出代码为 0

9.求1到10 所有偶数的和。

sum = 0
sum1 = 0
for i in range(1,11):
    if i % 2 ==0:
        sum = sum + i
i = i + 1
print("10以内偶数和是", sum)
10以内偶数和是 30

进程已结束,退出代码为 0

10.将10-20不能被2或3整除的数输出。

list = []
for i in range(10,21):
    if i % 2 !=0 and i % 3 !=0:
        list.append(i)
        i = i +1
print(list)
[11, 13, 17, 19]

进程已结束,退出代码为 0
举报

相关推荐

day3分支和循环作业

04.14分支与循环

2.17分支与循环

day4分支与循环总结和作业

day3分支和循环

3分支语句

分支和循环作业(习题)

0 条评论