python中if语句最多支持的分支_Python 条件分支(if语言,for语句,while语句)

if语句

if condition:

代码块

condition必须是一个bool类型,这个地方有一个隐式转换bool(condition)

if 1<2:

print('1 less than 2')

代码块也就是类似于if语句的冒号后面的就是一个语句块,在if,for,def,Class等的后面。

多条件分支:

if……elif……else语句。

a = 5

if a<0:print('negative')elif a==0:print('zero')else:print('positive')

结果为:

positive

#分支嵌套

score = 80

if score<0:print('wrong')else:if score==0:print('egg')elif score <= 100:print('right')else:print('too big')

结果为:

right

#练习,给定一个不超过5位数的正整数,判断其有几位。,这个题还可以运用整除的方法。a//10000等于0说明是4位数,除1000等于0说明是4位数。

但是没有下面的这个比较好,因为这个有计算。

val = input('>>>')

val=int(val)if val >= 1000: #fold,折半

if val>=10000:print(5)else:print(4)else:if val>=100:print(3)elif val >= 10:print(2)else:print(1)

val = int(input("请输入一个不超过5位数的数字:"))

if val >10000:

print("你输入的数字是5位数")

elif val>1000:

print("你输入的数字是4位数")

elif val>100:

print("你输入的数字是3位数")

elif val >10:

print("你输入的数字是2位数")

else:

print("你输入的数字是1位数")

练习1:输入2个数字,输出最大值。

print('请输入两个数字》')

a= int(input("一个数字:"))#input获得的是一个字符串,需要转换

b= int(input("另一个数字:"))if a >b:print("a大")elif a ==b:print(a==b)else:print("b大")

上面的折半多此一举了。

while 循环

while condition:

block当条件满足即condition为True,进入循环体,执行block 。要注意不要进入死循环。

如果变成-10了,就变成死循环了。要改循环的时候加等就可以了。

flag=10

whileflag:print(flag)

flag-= 1结果为10到1

count = 1

while count <= 10:print( count)

count= count + 1

if count == 5:break #彻底停止循环. 不会执行后面的else

else: #while条件不成立的时候执行

print("这里是else")

结果为:1

2

3

4

应该注意, 负数也是真。while -1 。

for循环

or element in iteratable:

block当可迭代对象中有元素可以迭代,进入循环体,执行block 。

for i in range(10):print(i+1)

结果为:1-10

如果要倒序打印:

for i in range(10,0,-1):

print(i)

range函数作业极大,range(stop),这是从0开始的。左包右不包。range函数返回的是一个range对象,它是一个可迭代对象。

range(start,stop,step),step是步长。

循环 continue语句

中断当前循环的当次执行,继续下一次循环

for i in range(0,10):if i & 1:#这是与continue

print(i)

结果为:

0,2,4,6,8

for i in range(10):

if not i%2:

print(i)

结果为:

0

2

4

6

8

for i in range(0,10,2):

print(i)

循环 break语句

终止当前循环

#举例:计算1000一类的被7整除的前20个数(for循环)

count =0for i in range(0,1000,7):print(i)

count+= 1

if count >= 20:break

j = 0

for i in range(1,1001):

if i%7==0 and j<20:

print(i)

j+=1

结果为: 07 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 126 133

continue和break是循环的控制语句,只影响当前循环,包括while、for循环 ,如果循环嵌套, continue和break也只影响语句所在的那一层循环 ,continue和break 不是跳出语句块,所以 if cond: break 不是跳出if,而是终止if外的break所在的循环。

三目运算表达式(里面的语句块只有一句,多于一句就不行了。)

给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字

num = int(input("请输入一个不大于5位数的数字:"))if num>10000:

a=5

print("你输入的是{}位数".format(a))elif num > 1000:

a=4

print("你输入的是{}位数".format(a))elif num>100:

a=3

print("你输入的是{}位数".format(a))elif num>10:

a=2

print("你输入的是{}位数".format(a))else:

a=1

print("你输入的是{}位数".format(a))

c=numfor i inrange(a):

n= c // 10

print(c - n*10)

c=n

给定一个不超过5位的正整数,判断该数的位数,依次从万位打印到个位的数字

num = int(input("请输入一个不大于5位数的数字:"))if num>10000:

a=5

print("你输入的是{}位数".format(a))elif num > 1000:

a=4

print("你输入的是{}位数".format(a))elif num>100:

a=3

print("你输入的是{}位数".format(a))elif num>10:

a=2

print("你输入的是{}位数".format(a))else:

a=1

print("你输入的是{}位数".format(a))

pre=0for i in range(a,0,-1):

cur= num//(10**(i-1))print(cur - pre*10)

pre= cur

循环 else子句

while condition:

block

else:

block

for element in iteratable:

block

else:

block如果循环正常的执行结束,就执行else子句;如果使用break终止,else子句不会执行。

练习1:打印一个边长为N的正方形

上面这个用到了对称。

练习2:求100内所有奇数的和(2500)

sum =0for i in range(1,2501,2):

sum+=iprint(sum)

练习3:判断学生成绩,成绩等级A-E。其中90分以上为A,80-89为B,70-79为C,60-69为D,60分以下为E

score = int(input("请输入学生的成绩:"))if score>=90:print("成绩为A")elif score>=80:print("成绩为B")elif score>=70:print("成绩为C")elif score>=60:print("成绩为D")else:print("成绩为E")

练习4:求1到5阶乘之和。

x = 0

sum = 1

for i in range(1,6):

sum*=ix+=sumprint(sum)

练习5:给定一个数,判断它是否为素数(质数),质数是一个大于1的自然数只能被1和它本身整除。

#最简单的思路,按照定义来,假设有一个数(n>1),从2开始判断,一直判断到N-1.

value = int(input("请输入一个数》》"))if value>1:for i in range(2,value):if value%i==0:print("不是质数")break

else:print("是质数")else:print("不是质数")

作业1:打印99乘法表

上面这是最原始的逻辑。最重要的是找到边界。

print函数默认分隔符是空格,以换行结尾。

这个是对齐了的。

大于,小于是右打印,还是左打印。20是20空格。

for i in range(1,10):

s= ""

for j in range(i,10):

s+="{}*{}={:66}".format(s))

作业2:打印下面的菱形

作业3:打印100内的斐波拉契数列

作业4:求斐波拉契数列第101项

作业5:求10万内的所有素数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值