
这里有一些针对数字的 while 循环问题供练习:
基本问题
1.打印数字
编写一个程序,使用 while 循环打印从 1 到 10 的数字。
def print_number(no):
num=1
while num<=no:
print(num, end=" ")
num+=1
print_number(10)
1 2 3 4 5 6 7 8 9 10
2.n 个数字的和
编写一个程序,使用 while 循环计算前 nn 个自然数的和。
def sum_of_number(no):
num=1
total=0
while num<=no:
total=total+num
num+=1
return total
no=int(input("sum of the number:"))
print(sum_of_number(no))
sum of the number:10 55
3.偶数
编写一个程序,使用 while 循环打印 1 到 50 之间的所有偶数。
def print_even_number(no):
num=2
while num<=no:
print(num, end=" ")
num+=2
print_even_number(50)
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
4.奇数
编写一个程序来打印 1 到 nn 之间的所有奇数。
def print_odd_number(no):
num=1
while num<=no:
print(num, end=" ")
num+=2
return no
no=int(input("enter the number:"))
print_odd_number(no)
enter the number:20 1 3 5 7 9 11 13 15 17 19
5.倒数
编写一个程序,使用 while 循环以相反的顺序打印从 20 到 1 的数字。
def print_reverse_number(no):
num=20
while num>=no:
print(num, end=" ")
num-=1
print_reverse_number(1)
20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
中级问题
1.阶乘计算
编写一个程序,使用 while 循环计算给定数字的阶乘。
def find_factorial(num):
no=1
factorial=1
while no<=num:
factorial=factorial*no
no+=1
return factorial
num=int(input("enter the number:"))
print(find_factorial(num))
enter the number:5 120
def sum_of_digits(num):
sum=0
while num>0:
sum=sum+num%10
num=num//10
return sum
num=int(input("enter the number:"))
print(sum_of_digits(num))
enter the number:123 6
3.数数字
编写一个程序来计算给定数字的位数(例如,12345 → 5 位数字)。
def count_of_digits(num):
count=0
while num>0:
num=num//10
count+=1
return count
num=int(input("enter the number:"))
print(count_of_digits(num))
enter the number:12345 5
4.反转数字
编写一个程序来反转给定的数字(例如 123 → 321)。
def reverse_number(num):
reverse=0
while num>0:
reverse=reverse*10+num%10
num=num//10
return reverse
num=int(input("enter the number:"))
print(reverse_number(num))
enter the number:123 321
5.乘法表
编写一个程序,使用 while 循环打印给定数字 nn 的乘法表。
def multiply(num):
no=1
while no<=15:
print(no,"*",num,"=",no*num , end="\n")
no+=1
num=int(input("enter the number:"))
multiply(num)
enter the number:12 1 * 12 = 12 2 * 12 = 24 3 * 12 = 36 4 * 12 = 48 5 * 12 = 60 6 * 12 = 72 7 * 12 = 84 8 * 12 = 96 9 * 12 = 108 10 * 12 = 120 11 * 12 = 132 12 * 12 = 144 13 * 12 = 156 14 * 12 = 168 15 * 12 = 180
高级问题
1.检查回文
编写一个程序来检查给定的数字是否是回文(例如,121→回文,123→不是回文)。
def palindrome(num):
count=0
while num>0:
count=count*10+num%10
num=num//10
return count
num=int(input("enter the number:"))
result=palindrome(num)
if result==num:
print("palindrome")
else:
print("not palindrome")
enter the number:121 palindrome enter the number:123 not palindrome
*2.找到力量*
def find_power(base,power):
result=1
while power>=1:
result=result*base
power-=1
return result
base=int(input("enter the base number:"))
power=int(input("enter the power number:"))
result=find_power(base,power)
print(result)
enter the base number:2 enter the power number:5 32
3.阿姆斯特朗数
编写一个程序来检查给定的数字是否是阿姆斯特朗数(例如,153 → 13 53 33=15313 53 33=153)。
def count_of_digits(num):
count=0
while num>0:
num=num//10
count+=1
return count
def find_power(base,power):
result=1
while power>=1:
result=result*base
power-=1
return result
def find_armstrong(num,count):
armstrong=0
while num>0:
rem=num%10
result= find_power(rem,count)
armstrong=armstrong+result
num=num//10
return armstrong
num=int(input("enter the number:"))
count=count_of_digits(num)
armstrong_result=find_armstrong(num,count)
if armstrong_result==num:
print("armstrong")
else:
print("not armstrong")
enter the number:123 not armstrong enter the number:153 armstrong
4.偶数和奇数位置之和:
def sum_of_even_odd(num):
odd=0
even=0
index=0
while index<len(num):
digit=int(num[index])
if index%2==0:
even=even+digit
else:
odd=odd+digit
index+=1
return even,odd
num=input("enter the number:")
even,odd=sum_of_even_odd(num)
print("sum of even number:",even)
print("sum of odd number:",odd)
Enter the number:12345 sum of even number: 9 sum of odd number: 6
以上就是日间循环练习的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号