跳转至

Python循环结构

1.求1到正整数n之间的偶数之和,输出结果后换行。

# 提示用户输入一个整数  
n = int(input())  

# 初始化变量来存储奇数的和  
sum_of_odds = 0  

# 使用for循环遍历奇数,并累加它们的和  
for a in range(0, n + 1, 2):  
    sum_of_odds += a  

# 打印结果  
print(sum_of_odds)

2.求1到n中所有偶数的积。

n = int(input())  
product_of_evens = 1  # 初始化变量来存储偶数的乘积  

# 从2开始,步长为2,确保只遍历偶数  
for a in range(2, n+1, 2):  
    product_of_evens *= a  # 累乘偶数  

# 打印结果  
print(product_of_evens)

3.求1-n的奇数和

n = int(input("请输入一个整数:"))  
total = 0  # 使用total作为变量名,避免与内置的sum()函数混淆  

# 从1开始,步长为2,确保只遍历偶数(如果n是奇数,则不包括n+1)  
for a in range(2, n+1, 2):  
    total += a  # 累加偶数  

print(total)

4.九九乘法表(矩形)

本题目要求输出如下图所示的九九乘法表

注:乘积要求做格式控制,占4个位置的宽度

for i in range(1,10):
    for j in range(1,10):
        print("{}*{}={:<4}".format(i,j,i*j),end="")
    print("")

这段代码用于打印乘法口诀表的前9行(从1乘到9)。下面是该代码的详细解释:

  1. 外部循环 (for i in range(1, 10):):
  2. 这个循环负责遍历数字1到9(包含1但不包含10)。变量 i代表乘法口诀表的第一个因数。
  3. 内部循环 (for j in range(1, 10):):
  4. 这个循环也遍历数字1到9(包含1但不包含10)。变量 j代表乘法口诀表的第二个因数。
  5. 对于外部循环中的每一个 i,内部循环都会完整地执行9次迭代(从 j=1j=9)。
  6. 打印语句 (print("{}*{}={:<4}".format(i,j,i*j),end="")):
  7. 使用 format方法格式化字符串。该方法中的 {}是占位符,它们将被后面提供的参数值所替换。
  8. 第一个 {}i的值替换,第二个 {}j的值替换,第三个 {}i*j(即 ij的乘积)的值替换。
  9. "{:<4}"是一个字段格式化,它表示将值左对齐,并占用至少4个字符的宽度。如果乘积的值少于4个字符,那么右侧会用空格填充。
  10. end=""参数表示在打印后不换行,而是在同一行继续打印。这允许内部循环在同一行上连续打印多个乘法表达式。
  11. 换行打印 (print("")):
  12. 当内部循环完成后(即 j从1遍历到9后),执行这个 print语句。由于它没有指定任何内容来打印(即空字符串 ""),所以它实际上只是打印一个换行符,使得乘法口诀表的下一行从新的一行开始。

当你运行这段代码时,输出将会是乘法口诀表的前9行,每一行都包含9个乘法表达式,并且每个表达式都被格式化为“因数1*因数2=乘积”的形式,其中乘积是左对齐的,并且至少占用4个字符的宽度。


5.打印特殊三角形

输入一个数字n,输出一个n层的特定三角形,三角形内数字增长是有规律的。

# 获取用户输入的整数n  
n = int(input("请输入一个整数:"))

# 初始化累加器sum和计数器num  
sum_value = 1  # 改为sum_value以避免与内置函数sum冲突  
num = 1

# 外部循环,控制行数  
for a in range(n):
    # 内部循环,从n递减到a+1  
    for b in range(n, a, -1):
        # 如果b等于a+1,打印当前累加器的值并准备进行下一行的累加  
        if b == a + 1:
            print(sum_value)  # 打印当前行的累加和  
            sum_value = 1  # 在这里重置sum_value,以便下一行从新的累加开始(如果这是您的意图)
        else:
            # 否则,打印当前累加器的值(左对齐,宽度至少为3)  
            print("{:<3}".format(sum_value), end="")
            # 累加b到sum_value中
        sum_value += b

6.图案打印

输入整数n,1<=n<=10,输出n行n列图案。

# 获取用户输入的整数n
n = int(input())

# 外部循环,用于控制行数,从1到n
for i in range(1, n + 1):
    # 内部循环,用于控制每行中的数字打印
    for j in range(1, n + 1):
        # 如果j小于等于i(即在当前行的范围内),则打印j的值
        if j <= i:
            print("{:>4}".format(j), end='')  # 使用格式化字符串,右对齐,宽度至少为4
        # 否则,打印当前行数i的值
        else:
            print("{:>4}".format(i), end='')  # 使用格式化字符串,右对齐,宽度至少为4

    # 在每行结束后,打印一个换行符,以便开始新的一行
    print()

7.求满足条件的斐波那契数

斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。

n = int(input("请输入一个整数:"))
sum1 = 1
sum2 = 1
sum3 = 0

while True:
    sum3 = sum1 + sum2
    if sum3 > n:
        break  # 一旦sum3超过n,就退出循环
    sum1 = sum2
    sum2 = sum3

# sum2现在是不大于n的最大斐波那契数
print(sum2)

8.统计成绩

输入一批学生成绩,计算平均成绩,并统计不及格学生人数。

sum = 0
no_pass = 0
stu = 0
while True:
    n = input()
    if (n<'0' or n>'9') and stu==0:
        print("没有学生")
        break
    else:
        n=eval(n)
        if n<=0:
            print("平均分={:.2f},不及格人数={}".format(sum / stu, no_pass))
            break
        else:
            if n < 60:
                no_pass += 1
                sum += n
            else:
                sum += n
            stu += 1

9.求误差小于输入值的e的近似值

er=float(input())
i=1
e=1
e_=0
f=1
while True:
    f*=i
    e_=e
    e+=1/f
    if(e-e_)<er:
        break
    i+=1
print("{:.6f}".format(e))

10.s=1+2+3+...+n直到s>=m

s=1+2+3+...+n,当s刚超过某个数时,停止运算。求n和s的值

n=int(input())
s=0
s1=1
sum=0
while s<=n:
    s=s1+s
    s1+=1
    sum+=1
print("{}=1+2+...+{}".format(s,sum))

11.按格式输出九九乘法表

按照格式设计一个“九九乘法口诀表”,并打印出来。

for i in range(1,10):
    for j in range(1,i+1):
        print("{}*{}={}".format(j,i,i*j),end=" ")
    print("")

12

a,b=input().split()
a=int(a)
b=int(b)
x=0
y=0
l=0
amount=0
f=0
for x in range(a,b):
    if x==1:
        continue
    for y in range(2,x):
        if x % y ==0:
            break
    else:
        print("{} ".format(x),end='')
        amount += 1
        l += 1
        f += x
        if l % 5==0:
            print()

if(f!=0 and amount!=0):
    print()
print("amount={} sum={}".format(amount,f))