python中break可以用在for和if中吗_Python中的if、for、while、break练习题

1.给定一个不超过五位的正整数,判断其有几位,依次打印出个位、十位、百位、千位、万位的数字。

i=int(input(':'))

ifi/1000>10:

r=5

elifi/1000>1:

r=4

elifi/100>1:

r=3

elifi/10>1:

r=2

else:

r=1↑↑以上是判断数字的位数,并用r表示。

print(r,end=' ')打印位数,将换行符替换为空格。

p=i

forjinrange(1,r+1):接下来是取每一位的数字,几位数就要取几次,所以确定集合边界。

q=p%10 用q表示每位的数字,从原始数字开始与10取模,这步是关键,也是难点。

p=i//10**j 将数字分别减少一位,以便下一循环取个位数字。

print(q,end='') 打印每位数字,去掉换行符

2.打印一个边长为n的正方形。

n=int(input(":"))

foriinrange(1,n+1,1):

ifi==1:对第一行特殊处理

print(n*"*")

elifi

print("*"+(n-2)*" "+"*")中间行打印首位各一个*号,中间n-2个空格

else:

print(n*"*")对最后一行特殊处理

修改:将第一行和最后一行合进数组。

n=int(input(":"))

foriinrange(1,n+1,1):

ifiin(1,n):

print(n*"*")

else:

print("*"+(n-2)*" "+"*")

3.求100以内所有奇数的和。

sum=0

foriinrange(1,100,2):

sum+=i每次的奇数相加

print(sum)

修改:

sum=0

foriinrange(1,100):

ifi %2!=0:

sum+=i

print(sum)

4.判断学生成绩,90-100为A,89-80为B,79-70为C,69-60为D,60分以下为E。

num=int(input(">>>"))

ifnum<60:

print("E")

else:

ifnum>=90:

print("A")

elifnum>=80:

print("B")

elifnum>=70:

print("C")

5.求1到5的阶乘之和。

sum=0

mul=1阶乘从1开始

foriinrange(1,6,1):

mul*=imul乘以i

sum+=mul求乘积和

print(sum)

6.打印九九乘法表。

最初:

i=1

whilei<10:

forjinrange(1,i+1):

print(i,"*",j,"=",i*j)

i+=1

修改:

i=1

whilei<10:

forjinrange(1,i+1):

print(i,"*",j,"=",i*j,end=' ')

i+=1

print()

修改二:

i=1

whilei<10:

forjinrange(1,i+1):

ifi*j<10:

print(str(j)+'*'+str(i)+'='+str(i*j)+' ',end=' ')

else:

print(str(j)+'*'+str(i)+'='+str(i*j),end=' ')

print()

i+=1

方法二:

foriinrange(1,10):

multables=" "

forjinrange(1,i+1):

multables+=(str(j)+"*"+str(i)+"="+str(j*i)+" ")

print(multables)

foriinrange(1,10):

forjinrange(1,i+1):

ifi*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

ifc<100:

a=b

b=c

else:

break

print(c)

7.1打印位斐波纳契数列第101项。

a=0

b=1

c=0

print(1)第一个是1

foriinrange(1,101):#the 101th febonacci numb

ifc<10000:

c=a+bFebonacci数的特征,上两组数相加

a=b将上一个数的值赋给第一个

b=c将和赋给第二个,然后循环处理。

print(c)

8.求10万以内所有的质数。

foriinrange(1,100001,2):100000以内的奇数,偶数一定能被2整除

forjinrange(2,int(i**0.5)+1):将这个数分别与2到它的开方的数字取模不为零,那么就是质数。

ifi%j==0:

break只要有一次能整除就不在循环。

else:

print(i)

9.打印菱形。

伪代码

m=int(input('请输入你想打印菱形的宽度:'))

n=m//2

foriinrange(n,-1,-1):

ifi == n:

print()

print(i*'0'+(n-i)*'*'+(n-i)*'*'+i*'0')

foriinrange(1,(n+1)):

print(i*'0'+(n-i)*'*'+(n-i)*'*'+i*'0')

9.1

foriinrange(-3,4):

ifi <0:

print(' '*(-i)+(4+i)*'*')

else:

ifi>0:

print(' '*4+(4-i)*'*')

else:

print(7*'*')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值