PHP前端开发

日间循环练习

百变鹏仔 2个月前 (01-20) #Python
文章标签 日间

这里有一些针对数字的 while 循环问题供练习:

基本问题

1.打印数字
编写一个程序,使用 while 循环打印从 1 到 10 的数字。

def print_number(no):    num=1    while num<=no:        print(num, end=" ")        num+=1print_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 totalno=int(input("sum of the number:"))print(sum_of_number(no))
sum of the number:1055

3.偶数
编写一个程序,使用 while 循环打印 1 到 50 之间的所有偶数。

def print_even_number(no):    num=2    while num<=no:        print(num, end=" ")        num+=2print_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 nono=int(input("enter the number:"))print_odd_number(no)
enter the number:201 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-=1print_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 factorialnum=int(input("enter the number:"))print(find_factorial(num))
enter the number:5120
  1. 数字总和编写一个程序来计算给定数字的数字之和(例如,123 → 1 2 3=6)。
def sum_of_digits(num):    sum=0    while num>0:        sum=sum+num%10        num=num//10    return sumnum=int(input("enter the number:"))print(sum_of_digits(num))
enter the number:1236

3.数数字
编写一个程序来计算给定数字的位数(例如,12345 → 5 位数字)。

def count_of_digits(num):    count=0    while num>0:        num=num//10        count+=1    return countnum=int(input("enter the number:"))print(count_of_digits(num))
enter the number:123455

4.反转数字
编写一个程序来反转给定的数字(例如 123 → 321)。

def reverse_number(num):    reverse=0    while num>0:        reverse=reverse*10+num%10        num=num//10    return reversenum=int(input("enter the number:"))print(reverse_number(num))
enter the number:123321

5.乘法表
编写一个程序,使用 while 循环打印给定数字 nn 的乘法表。

def multiply(num):    no=1    while no<=15:        print(no,"*",num,"=",no*num , end="")        no+=1num=int(input("enter the number:"))multiply(num)
enter the number:121 * 12 = 122 * 12 = 243 * 12 = 364 * 12 = 485 * 12 = 606 * 12 = 727 * 12 = 848 * 12 = 969 * 12 = 10810 * 12 = 12011 * 12 = 13212 * 12 = 14413 * 12 = 15614 * 12 = 16815 * 12 = 180

高级问题

1.检查回文
编写一个程序来检查给定的数字是否是回文(例如,121→回文,123→不是回文)。

def palindrome(num):    count=0    while num>0:        count=count*10+num%10        num=num//10    return countnum=int(input("enter the number:"))result=palindrome(num)if result==num:    print("palindrome")else:    print("not palindrome")
enter the number:121palindromeenter the number:123not palindrome

*2.找到力量*

def find_power(base,power):    result=1    while power>=1:        result=result*base        power-=1    return resultbase=int(input("enter the base number:"))power=int(input("enter the power number:"))result=find_power(base,power)print(result)
enter the base number:2enter the power number:532

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 countdef find_power(base,power):    result=1    while power>=1:        result=result*base        power-=1    return resultdef find_armstrong(num,count):    armstrong=0    while num>0:        rem=num%10        result= find_power(rem,count)        armstrong=armstrong+result        num=num//10    return armstrongnum=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:123not armstrongenter the number:153armstrong

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,oddnum=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:12345sum of even number: 9sum of odd number: 6