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*'*')
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*'*')
相关文章推荐
- Python1:if / while / for...in / break /continue
- Python之while,for,if练习题
- python控制流语句if、while、for、break、contnue的学习———ubuntu下python的学习(2)
- python之for、while、if练习题
- A Byte of Python 笔记(4)控制流:if、for、while、break、continue
- python基础语法(数据类型、if、while、for、break、continue、IO操作)
- GoodZhang在学Python(三)--控制流if while for break continue
- Python基础(条件判断和循环) if elif else for while break continue;
- python (if-else ,for, while, break, continue)
- 如何熟练掌握python的if、while和for以及与它们相关的break和continue语句 通过什么样的形式, 做题吗?
- Python学习--控制语句:if, while, for, break, continue
- python基础语法之if,else,for,while,continue,break
- Python入门(三):if判断、for和while循环、break和continue
- Python if for else elif while break loop pass 控制流工具
- python学习(十)赋值、表达式、if、while、for
- python教程13--《控制语句之 if、while、for》
- Python成长之路第一篇(4)_if,for,while条件语句
- [置顶] 循环语句if(){}else{}、if(){}else if(){}...else{}、do{}while()、for(){}、with(){}break/continue语句
- Python基础--循环for、while,判断if
- python控制流语句-while,for,if