练习_1
奇数:
- 4 给定一个不超过5位的正整数,判断其有几位,依次打印出个位,百位,千位,万位的数字(逆序)
- 5 打印一个边长为n的正方形
- 6 求100内所有奇数的和(2500)
- 7 判断学生成绩,成绩等级A-E,其中,90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’
- 8 求1到5阶乘之和
- 9 给一个数,判断它是否是素数(质数)
质数: 一个大于1的自然数只能被1和它本身整除
练习题目:
1 给定一个不超过5位的正整数,判断其有几位
使用input函数
2 打印1-10,正反序
3 计算10以内的偶数(奇数)
4 给定一个不超过5位的正整数,判断其有几位,依次打印出个位,百位,千位,万位的数字(逆序呢)
5 打印一个边长为n的正方形
6 求100内所有奇数的和(2500)
7 判断学生成绩,成绩等级A-E,其中,90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’
8 求1到5阶乘之和
9 给一个数,判断它是否是素数(质数)
质数: 一个大于1的自然数只能被1和它本身整除
-
1 给定一个不超过5位的正整数,判断其有几位
使用input函数number=int(input()) #定义整数number if number>=100: #判断number是否大于100(二分法) if number>=10000: print('it is five-digit number') elif number>=1000: print('it is four-digit number') else: print('it is three-digit number') else: if number>=10: print('it is two-digit number') elif number>=0: print('it is unidigit') # 2 i=int(input('>>>')) count=1 while True: count+=1 i=i//10 # 将个位去除之后的数赋值给自身,例: i=55//10=5 if i//10==0: # 当去除到数字首位时,i为个位,便如: 5//10=0 break print(count)
-
2 打印1-10,正反序
#正: # 1 for i in range(10): print(i+1) # 2 for i in range(1,11): print(i) # 3 i=1 while True: print(i) i+=1 if i==11: break
#反: # 1 for i in range(10,0,-1): print(i) # 2 for i in range(1,11): print(11-i) # 3 i=10 while True: print(i) i-=1 if i==0: break
-
3 计算10以内的偶数(奇数)
偶数:
#1 for i in range(0,11,2): print(i) #2 for i in range(11): if i%2==0: print(i) #3 for i in range(11): if i%2!=0: continue else: print(i)
奇数:
#1 for i in range(1,11,2): print(i) #2 for i in range(11): if i%2!=0: print(i) #3 for i in range(11): if i%2==0: continue else: print(i)
- 4 给定一个不超过5位的正整数,判断其有几位,依次打印出个位,百位,千位,万位的数字(逆序)
#正序: number=1234 #定义整数number if number>=100: #判断整数位数 if number>=10000: digit=5 #位数赋值给digit elif number>=1000: digit=4 else: digit=3 else: if number>=10: digit=2 elif number>=0: digit=1 print("digit is : "digit) pre_old=number #number赋值给pre_old while digit: unidigit=pre_old%10 #求得个位数的值 pre_new=pre_old//10 #求得除个位以外其它数的值 pre_old=pre_new print(unidigit) #打印个位数的值 digit-=1
#逆序: # 1 number=1234 if number>=100: if number>=10000: digit=5 elif number>=1000: digit=4 else: digit=3 else: if number>=10: digit=2 elif number>=0: digit=1 print("digit is : "digit) while digit: midnum=number//10**(digit-1) unidigit=midnum%10 digit-=1 print(unidigit) # 2 i=int(input('>>>')) count=1 num=i # 保留一份输入的值,防止计算位数将此变量修改 while True: count+=1 i=i//10 if i//10==0: break while count: tmp=num//(10**(count-1)) unidigit=tmp%10 count-=1 print(unidigit)
#简化正序: pre_old=2234 digit=0 while True: digit+=1 # if之前加1 if pre_old%10==pre_old: # 当求得的值除以10为自身时,表示pre_old为个位数了,即此数的首位 print(pre_old) break unidigit=pre_old%10 pre_new=pre_old//10 pre_old=pre_new print(unidigit) else: print("digit is : "digit)
- 5 打印一个边长为n的正方形
# 边长为5: for i in range(1,6): if i==1 or i==5: print('*'*5) # 上下边 else: print('*'+' '*(5-2)+'*') # 5-2为中间的空白部分 # 边长为n: for i in range(1,n+1): print('*'*n) if (i==1 or i==n) else print('*'+' '*(n-2)+'*')
- 6 求100内所有奇数的和(2500)
# 1 sum=0 for i in range(1,101,2): sum+=i else: print(sum) # 2 num=1 sum=0 while num<100: sum+=num num+=2 else: print(sum)
- 7 判断学生成绩,成绩等级A-E,其中,90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’
score=77 if score>=70: if score>=90: print('A') elif score>=80: print('B') else: print('C') else: print(D) if score>=60 else print(E)
- 8 求1到5阶乘之和
#1 sum=0 for n in range(5,0,-1): # 此循环提供需要哪些阶乘,并将其累加 product=1 for i in range(1,n+1): # 此循环用于生成阶乘的结果 product*=i sum+=product print(sum)
#2 sum=0 multiplier=1 for i in range(1,6): multiplier*=i # 求单个阶乘 sum+=multiplier # 将求得的阶乘累加 else: print(sum)
- 9 给一个数,判断它是否是素数(质数)
质数: 一个大于1的自然数只能被1和它本身整除
print('is prime')
本文转自 撒旦搞时间 51CTO博客,原文链接:http://blog.51cto.com/12074120/1965908,如需转载请自行联系原作者