hwl198212 发表于 2018-8-13 11:38:58

Python中的if、for、while、break练习题

  1.给定一个不超过五位的正整数,判断其有几位,依次打印出个位、十位、百位、千位、万位的数字。
  i=int(input(':'))
  if i/1000>10:
  r=5
  elif i/1000>1:
  r=4
  elif i/100>1:
  r=3
  elif i/10>1:
  r=2
  else:
  r=1↑↑以上是判断数字的位数,并用r表示。
  print(r,end=' ')打印位数,将换行符替换为空格。
  p=i
  for j in range(1,r+1):接下来是取每一位的数字,几位数就要取几次,所以确定集合边界。
  q=p%10    用q表示每位的数字,从原始数字开始与10取模,这步是关键,也是难点。
  p=i//10**j    将数字分别减少一位,以便下一循环取个位数字。
  print(q,end='')    打印每位数字,去掉换行符
  2.打印一个边长为n的正方形。
  n=int(input(":"))
  for i in range(1,n+1,1):
  if i==1:对第一行特殊处理
  print(n*"*")
  elif i<n:
  print("*"+(n-2)*" "+"*")中间行打印首位各一个*号,中间n-2个空格
  else:
  print(n*"*")对最后一行特殊处理
  修改:将第一行和最后一行合进数组。
  n=int(input(":"))
  for i in range(1,n+1,1):
  if i in(1,n):
  print(n*"*")
  else:
  print("*"+(n-2)*" "+"*")
  3.求100以内所有奇数的和。
  sum=0
  for i in range(1,100,2):
  sum+=i每次的奇数相加
  print(sum)
  修改:
  sum=0
  for i in range(1,100):
  if i % 2!=0:
  sum+=i
  print(sum)
  4.判断学生成绩,90-100为A,89-80为B,79-70为C,69-60为D,60分以下为E。
  num=int(input(">>>"))
  if num<60:
  print("E")
  else:
  if num>=90:
  print("A")
  elif num>=80:
  print("B")
  elif num>=70:
  print("C")
  5.求1到5的阶乘之和。
  sum=0
  mul=1阶乘从1开始
  for i in range(1,6,1):
  mul*=imul乘以i
  sum+=mul求乘积和
  print(sum)
  6.打印九九乘法表。
  最初:
  i=1
  while i<10:
  for j in range(1,i+1):
  print(i,"*",j,"=",i*j)
  i+=1
  修改:
  i=1
  while i<10:
  for j in range(1,i+1):
  print(i,"*",j,"=",i*j,end=' ')
  i+=1
  print()
  修改二:
  i=1
  while i<10:
  for j inrange(1,i+1):
  if i*j<10:
  print(str(j)+'*'+str(i)+'='+str(i*j)+' ',end=' ')
  else:
  print(str(j)+'*'+str(i)+'='+str(i*j),end=' ')
  print()
  i+=1
  方法二:
  for i in range(1,10):
  multables=" "
  for j in range(1,i+1):
  multables+=(str(j)+"*"+str(i)+"="+str(j*i)+" ")
  print(multables)
  for i in range(1,10):
  for j in range(1,i+1):
  if i*j<10:
  print(str(j)+'*'+str(i)+'='+str(i*j)+' ',end=' ')
  else:
  print(str(j)+'*'+str(i)+'='+str(i*j),end=' ')
  print()
  7.打印100以内的Febonacci sequence。
  a=0
  b=1
  while True:
  c=a+b
  if c<100:
  a=b
  b=c
  else:
  break
  print(c)
  7.1打印位斐波纳契数列第101项。
  a=0
  b=1
  c=0
  print(1)第一个是1
  for i in range(1,101):#the 101th febonacci numb
  if c<10000:
  c=a+bFebonacci数的特征,上两组数相加
  a=b将上一个数的值赋给第一个
  b=c将和赋给第二个,然后循环处理。
  print(c)
  8.求10万以内所有的质数。
  for i in range(1,100001,2):100000以内的奇数,偶数一定能被2整除
  for j in range(2,int(i**0.5)+1):将这个数分别与2到它的开方的数字取模不为零,那么就是质数。
  if i%j==0:
  break只要有一次能整除就不在循环。
  else:
  print(i)
  9.打印菱形。
  伪代码
  m=int(input('请输入你想打印菱形的宽度:'))
  n=m//2
  for i in range(n,-1,-1):
  if i == n:
  print()
  print(i*'0'+(n-i)*'*'+(n-i)*'*'+i*'0')
  for i in range(1,(n+1)):
  print(i*'0'+(n-i)*'*'+(n-i)*'*'+i*'0')
  9.1
  for i in range(-3,4):
  if i <0:
  print(' '*(-i)+(4+i)*'*')
  else:
  if i>0:
  print(' '*4+(4-i)*'*')
  else:
  print(7*'*')
页: [1]
查看完整版本: Python中的if、for、while、break练习题