007 Python初学笔记--分支和循环

一、分支:

1.C语言中的if...else if...else...在python中写为if...elif...else...:

score=input("请输入成绩:")
score=score.strip()      #去除字符串两端的空格
if score.isdigit():      #判断输入的字符串是否只含有数字
    score=int(score)
    if 90<=score<=100:
        print("A")
    elif 80<=score<90:
        print("B")
    elif 70<=score<80:
        print("C")
    elif 60<=score<70:
        print("D")
    else:
        print("不及格")
else:
    print("输入格式错误!")

运行结果:

请输入成绩:65
D

注:python中去掉字符串中空格的方法:https://blog.csdn.net/beautiful77moon/article/details/86500950

2.python可以有效避免悬挂else:什么是悬挂else?

例如下面C语言中的代码,这个else应该是和第二个if匹配的,但是用户可能因为代码的格式将程序错认为else是和第一个if匹配的,这就是悬挂else问题。而python的缩进有效的避免了这个问题

if (i>2)
    if(i>7)
        print("这是一个不小的数!")
else 
    print("这个数有点小")

3.三元操作符的使用:

下来看一个例子:

x,y=4,5
if x<y:
    small=x
else:
    small=y
print(small)

上面这个例子可以简化为:

x,y=4,5
small=x if x<y else y
print(small)

运行结果为:4

(4)断言:assert:

assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常

一般来说我们可以用assert在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就显得非常有用了。assert可以用在程序的测试中,因为与其让错误的条件导致程序今后莫名其妙的崩溃,不如在出现错误的那一瞬间我们实现“自爆”。

>>> assert 3>4
Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    assert 3>4
AssertionError
>>> assert 3<4
>>> 

二、循环:

1.while循环太简单,前面提过,这里不再赘述

2.for循环:python中的for循环比C语言中的for循环显得更加智能和强大:

#for循环的使用
'''
for 变量 in 列表:
    循环体
'''

#example1 
list_string='IloveU'
for i in list_string:
    print(i)
for i in list_string:
    print(i,end=" ")

结果:

I
l
o
v
e
U
I l o v e U 
#example2
list2=['Jasper','阿拉蕾','小山竹','诺一']
for name in list2:
    print(name,len(name))      #len(name):求变量的长度

结果:

Jasper 6
阿拉蕾 3
小山竹 3
诺一 2

拓展:什么是成员资格运算符?python中有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回True,否则返回False。

>>> st="我爱你"
>>> '爱'in st
True
>>> '不爱'in st
False

3.range():这个python的内置函数经常搭配for一起使用:

'''语法'''
range([start,]stop[,step=1])
  • 这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的
  • step=1表示第三个参数的默认值是1
  • range这个BIF的作用是生成一个从start参数的值开始到stop参数的值(不包括stop)结束的数字序列
>>> range(5)     
range(0, 5)
>>> list(range(5))    #range(stop)默认是从0开始,生成一个数字序列
[0, 1, 2, 3, 4]
>>> list(range(3,7))  #range(start,stop)从start开始,到stop结束(不包括stop)
[3, 4, 5, 6]
>>> list(range(3,7,2))#range(start,stop,step),生成的数字序列从start开始,每次增加step(step默认为1)
[3, 5]
  • range()与for的搭配使用
>>> for num in range(3):
	print(num)

0
1
2
>>> for num in range(1,4):
	print(num)

1
2
3
>>> for num in range(1,5,2):    #step=2表示生成的数列从第一个数开始每次增加2
	print(num)

1
3

4.break,continue:

break:跳出循环

name=input("请输入你的名字:")
while(True):  
    if not name.isalpha():    #判断字符串中是否全部都是字母
        name=input("输入格式不正确,请仔细输入:")
    else:
        break
print("这下我知道你的名字了")

结果:

请输入你的名字:123
输入格式不正确,请仔细输入:whajs2
输入格式不正确,请仔细输入:Swan
这下我知道你的名字了

continue:中止本次循环并开始下一次循环(在下一次循环开始之前会先测试循环条件)

for i in range(10):
    if i%2!=0:
        print(i)
        continue
    i+=2
    print(i)

结果:

2
1
4
3
6
5
8
7
10
9

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值