第三次作业_循环
- Python
- 2024-06-04
- 261热度
- 0评论
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)。下面是该代码的详细解释:
- 外部循环 (
for i in range(1, 10):
):
- 这个循环负责遍历数字1到9(包含1但不包含10)。变量
i
代表乘法口诀表的第一个因数。- 内部循环 (
for j in range(1, 10):
):
- 这个循环也遍历数字1到9(包含1但不包含10)。变量
j
代表乘法口诀表的第二个因数。- 对于外部循环中的每一个
i
,内部循环都会完整地执行9次迭代(从j=1
到j=9
)。- 打印语句 (
print("{}*{}={:<4}".format(i,j,i*j),end="")
):
- 使用
format
方法格式化字符串。该方法中的{}
是占位符,它们将被后面提供的参数值所替换。- 第一个
{}
被i
的值替换,第二个{}
被j
的值替换,第三个{}
被i*j
(即i
和j
的乘积)的值替换。"{:<4}"
是一个字段格式化,它表示将值左对齐,并占用至少4个字符的宽度。如果乘积的值少于4个字符,那么右侧会用空格填充。end=""
参数表示在打印后不换行,而是在同一行继续打印。这允许内部循环在同一行上连续打印多个乘法表达式。- 换行打印 (
print("")
):
- 当内部循环完成后(即
j
从1遍历到9后),执行这个""
),所以它实际上只是打印一个换行符,使得乘法口诀表的下一行从新的一行开始。当你运行这段代码时,输出将会是乘法口诀表的前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))