因为控制台会让不断输入,索性就把input放到注释里了。
这一片主要练习for–in循环和列表

用for-in语句实现下面的编程题目

编程题
1.求1–100之间可以被7整除的数的个数

2.计算从1到100以内所有奇数的和。

3.计算从1到100以内所有能被3或者17整除的数的和。

4.计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数。

5.计算1到500以内能被7整除但不是偶数的数的个数。

中级:
编程题

1.从键盘输入一个数n,判断是不是一个质数(质数是只能被1和它自身整除的数)

2.求1000以内的水仙花数:
水仙花数:一个三位数各个位上的立方之和,等于本身。
例如: 153 = 1(3) + 5(3)+ 3(3) = 1+125+27 = 153

3.求2〜100之内的素数。【素数 : 只能被1或本身整除的数】

4.优化猜数字游戏
计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了,这个过程可以循环进行
当进行5次以上还猜不对的话,则打印:智商余额不足

5.逐一显示列表l1 = [“Sun”,“Mon”,“Tue”,“Wed”,“Thu”,“Fri”,“Sat”]中索引为奇数的元素

6.将属于列表l1 = [“Sun”,“Mon”,“Tue”,“Wed”,“Thu”,“Fri”,“Sat”],但不属于列表l2 = [“Sun”,“Mon”,“Thu”,“Fri”,“Sat”]的所有元素定义为一个新列表l3

7.已知列表namelist=[‘stu1’,‘stu2’,‘stu3’,‘stu4’,‘stu5’,‘stu6’,‘stu7’],删除列表removelist=[‘stu3’, ‘stu7’, ‘stu9’];请将属于removelist列表中的每个元素从namelist中移除(属于removelist,但不属于namelist的忽略即可);

import sys
import math
import random

"""
1.求1--100之间可以被7整除的数的个数
"""
print("初级")
print("第一题")
sum1 = 0
for a in range(1, 100):
    if a % 7 == 0:
        sum1 += 1
    a += 1
print("可以被7整除的个数为:", sum1)
print("*******************************************")

"""
2.计算从1到100以内所有奇数的和。
"""
print("第二题")
sum2 = 0
for b in range(1, 100):
    if b % 2 == 1:
        sum2 += b
    b += 1
print(" 1~100奇数和为:", sum2)
print("*******************************************")

"""
3.计算从1到100以内所有能被3或者17整除的数的和。 
"""
print("第三题")
sum3 = 0
for c in range(1, 100):
    if (c % 3 == 0) | (c % 17 == 0):
        sum3 += c
    c += 1
print("1~100能被3或者17整除的数的和为:", sum3)
print("*******************************************")

"""
4.计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数。
"""
print("第四题")
sum4 = 0
for d in range(1, 100):
    if (d % 7 == 0) | (d % 3 == 0):
        if d % 21 != 0:
            sum4 += 1
    d += 1
print("1~100能被7或者3整除但不能同时被这两者整除的数的个数:", sum4)
print("*******************************************")

"""
5.计算1到500以内能被7整除但不是偶数的数的个数。
"""
print("第五题")
sum5 = 0
for e in range(1, 500):
    if (e % 7 == 0) & (e % 2 == 1):
        sum5 += 1
    e += 1
print("1~500能被7整除但不是偶数的数的个数:", sum5)
print("*******************************************")

# 中级
"""
1.从键盘输入一个数,判断是不是一个质数(质数是只能被1和它自身整除的数)
"""
print("中级")
print("第一题:")
# 这个题多敲几遍!多敲几遍!!
# f = int(input("请输入一个数,系统会自动判断这个数是否为质数:"))
f = 13
print("系统正在判断,请稍后...")
for g in range(2, f-1):
    if f % g == 0:
        print("抱歉,这个数不是质数!")
    elif f % g != 0:
        g += 1
        print("恭喜,这个数是质数!")
    break
print("*******************************************")

"""
2.求1000以内的水仙花数:
  水仙花数:一个三位数各个位上的立方之和,等于本身。
  例如: 153 = 1(3) + 5(3)+ 3(3) = 1+125+27 = 153
"""
print("第二题:")
# 水仙花我真的写吐了
for h in range(100, 1000):
    i = h // 100  # 百位
    j = (h - i * 100) // 10  # 十位
    k = h - i * 100 - j * 10  # 个位
    l = pow(i, 3) + pow(j, 3) + pow(k, 3)
    if h == l:
        print(h, "是水仙花数")
print("*******************************************")

"""
3.求2~100之内的素数。【素数 : 只能被1或本身整除的数】
"""
print("第三题:")
# 这两个题太麻烦了...
o = []
for m in range(2, 100):
    for n in range(2, m):
        if m % n == 0:
            break
    else:
        o.append(m)
print("2~100内的素数为:\n", o)
print("*******************************************")

"""
4.优化猜数字游戏
计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了,这个过程可以循环进行
当进行5次以上还猜不对的话,则打印:智商余额不足
"""
print("第四题:")
print("欢迎来到猜字游戏~")
r = 5
q = random.randint(1, 100)  # 系统随机获取一个1~100的数
while r > 0:  # 一共有5次输入的机会
    # p = int(input("你还有"+str(r)+"次机会,\n输入一个1~100的数:"))
    p = 5
    if p < q:
        print("******************\n再大一点~")
    elif p > q:
        print("******************\n再小一点~")
    elif p == q:
        print("******************\n恭喜你,猜对啦~")
        break
    r -= 1
if r == 0:
    print("您的智商余额不足,请充值后再玩~")
print("*******************************************")

"""
5.逐一显示列表l1 = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]中索引为奇数的元素
"""
print("第五题:")
l1 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
for s in range(1, len(l1), 2):
    print("列表l1中索引为奇数的是:", l1[s])
print("*******************************************")

"""
7.已知列表namelist=['stu1','stu2','stu3','stu4','stu5','stu6','stu7'],
删除列表removelist=['stu3', 'stu7', 'stu9'];
请将属于removelist列表中的每个元素从namelist中移除
(属于removelist,但不属于namelist的忽略即可)
"""
print("第七题:")
namelist = ['stu1', 'stu2', 'stu3', 'stu4', 'stu5', 'stu6', 'stu7']
removelist = ['stu3', 'stu7', 'stu9']
for u in removelist:
    if u in namelist:
        namelist.remove(u)
print("新的namelist = ", namelist)
print("*******************************************")