您的位置:首页 > 编程语言 > Python开发

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

2017-09-17 20:47 876 查看
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*=i mul乘以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 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()
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+b Febonacci数的特征,上两组数相加
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*'*')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  for while