python基础-流程控制

if...语句进行条件判断

在程序需要进行判断时,就需要使用if...语句进行判断,已完成程序的需求

使用格式:if 条件:  后续进行的操作

例如:  判断大小关系
注意:对于0基础的新手来说,缩进是必须要进行注意的,在python中,缩进与程序的执行相关

缩进的位置不一样,会使得程序的执行结果差之千里!!!

num_1 = 1
num_2 = 2
if num_2 < num_1:      #条件不成立,程序在此处停止,则不会去打印“123”
    print("123")         
num_1 = 1
num_2 = 2
if num_2 > num_1:   
    print("123")            #成功打印”123“

if...elif...语句进行进一步判断

对于条件较多的程序来说,这时候就可以使用if...else...语句进行判断

其使用与if..语句相似,if 判断条件:执行代码    else:执行代码
注意缩进!!!

此处仍拿判断大小关系举例:

num_1 = 1
num_2 = 2
if num_2 < num_1:           #;此处判断条件不成立                
    print("num_2较小")        #因此此处代码不会执行
elif num_1 < num_2:
    print("num_1较小")         #由于num_1小于num_2,因此此程序结果为:"num_1较小"

if...else...语句进行逻辑判断

if...写出条件,然后else...后面不用继续书写条件,else..后的条件,那数学上的概念来说,是全集减去if...中的条件

num_1 = 1
num_2 = 1
if num_2 < num_1:
    print("{}小于num_1".format(num_2))
else :
    print("{}不小于num_1".format(num_2))    #出去小于的情况,二者即使相等也会执行else中的代码

三元运算符

与c语言和JavaScript中的三元运算符类似,在此给出一个简单示例:

注意:python中有三元运算符,但是并没有do while 语句,以及 switch 语句

a = 1
b = 2
print(a if a > b else b )  #此程序仍是比较两数大小并输出较大的数,结果为2

if...elif...else...语句进行更进一步判断

此语句可以当作switch语句进行理解

此处给一个经典判断2024年天某个月天数的示例:

#此处以2024年为例
month = int(input("输入你想查找的月份:"))
if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
    print("{}月有31天".format(month))
elif month ==4 or month == 6 or month == 9 or month == 11:
    print("{}月有30天".format(month))
else:
    print("2月有29天")

多个if...语句嵌套处理更为复杂的逻辑问题

涉及逻辑稍微复杂一点的程序,比如,输出三个数字当中最大的数字:

a = int(input("输入一个数字:"))
b = int(input("再次输入一个数字:"))
c = int(input("再次输入一个数字:"))
if a > b :
    if a > c:
        print("{}是三个数中最大的数字".format(a))
    else:
        print(print("{}是三个数中最大的数字".format(c)))
else:
    if b > c:
        print("{}是三个数中最大的数字".format(b))
    else:
        print("{}是三个数中最大的数字".format(c))

for循环语句

经常与range()函数进行配合使用

range()函数

该函数有三个参数,左端点,右端点以及步长

左端点的默认值为0,右端点为必须传递的参数,步长默认为1

例:

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

运行结果:

在此需要注意的是:

做右端点组成的是数学上的区间,因此左端点必须小于等于右端点,由于该区间左封右闭,故而两者不能相等。在进行取值时,左端点可以取得,而右端点则不可取得

使用此函数,还可以实现字符串的逆序排列

此处讲解一下字符串的索引问题

索引问题

我们知道,字符串,列表,元组均是有序的,这里的顺序,指的就是索引

上述个数据,都可以进行索引取值,以及切片(后续会讲解)。

所谓索引,就是根据上述数据的下标来对数据进行取值

例如:

new_list = [1,2,43,35,53,2]
new_tuple = (1,2,3,5,6,3)
new_str = "gfalsfalsfasdfasdf"
print(new_str[0],new_list[3],new_tuple[-1])

从数据的左边向右边数,索引值由零开始,逐渐递减,

从数据的右边向左边开始数,索引值从-1开始,逐渐递减

此处在补充一个len()函数

len()函数

其参数可以是字符串,列表以及元组等...

其作用与它自身的意思一样,就是求长度

例:

new_list = [1,2,43,35,53,2]
new_tuple = (1,2,3,5,6,3)
new_str = "gfalsfalsfasdfasdf"
print(len(new_str),len(new_tuple),len(new_list))

此函数需要注意的是,对于字符串类型,空字符串虽然看不到,但是其也会被算作长度

例:

print(len("     "))

其执行结果并不是0

由此,继续回到for循环的问题,我们可以利用for循环来对字符串,列表进行一系列操作

比如,可以使用for循环遍历列表:

方法一:(for循环)

new_list = [1,2,43,35,53,2]:
for i in new_list:
    print(i)

方法二:(for循环加上range()函数)

new_list = [1,2,43,35,53,2]
for i in range(len(new_list)):
    print(new_list[i])

使用for循环加上range()函数来实现对一个字符串的逆序排列

new_str = "qwert"
for i in  range(-1,-(1+len(new_str)),-1):
    print(new_str[i])

enumerate()函数

此函数结合for循环,可以拿到一个列表中的所有数据,以及其对应的索引值 

new_list = ["奥特曼","蜜雪冰城","蜂蜜柚子","冰糖雪梨"]
for index,key in enumerate(new_list,0):
    print("列表中的第{}个元素是:{}".format(index,key))

while循环

基本语法:while 条件:   代码                        注意:缩进问题!!!

此语法在进行使用时一定要注意设置这个循环终止的条件,防止出现死循环!!

例如:

while True:
    print("奥特曼")

其会一直不停的执行,严重浪费电脑性能。

此时,就需要用到两个关键字,来对循环进行控制

break

结束自己所在的整个循环

例:

i = 0
while True:
    i += 1
    print(i)
    if i == 100:
        break

此时,当i增加到100是,if条件满足,执行break,停止整个循环

此语句经常用于while循环的停止

continue

结束自己的一次循环

例:打印100以内的偶数   (方法一:for循环)

for i in range(101):
    if i % 2 ==1:
        continue
    else:
        print(i)

方法二:while循环

i = 0
while True:
    if i % 2 == 0:
        print(i)
        i += 1
    else:
        i += 1
        continue
    if i == 101:
        break

由上述两例可知,break与continue均可用于for循环与break中,break经常用于结束while循环

try except 与 finally

用于捕获程序中的错误并进行改善,使程序在运行时减少报错

try : 对所写的代码进行检测,捕获错误

except : 对所出现的错误进行接受,并执行后续处理

finally :无论程序最后是否出错,其区域代码总会如期执行

例:
 

new_num= input()
try:
    num = int(new_num)
    print("你输入的数字个位是是{}".format(num % 10))
except:
    print("输入不合法")
finally:
    print("程序结束")

对于上述程序,int转化时,用户输入的可能是字符串而导致int转化无法进行而报错,因此对此进行错误捕获,然后在发现输入参数不可转化后,执行except中的代码,告知用户,输入的不合法,最后finally中的”程序结束“不受任何影响,提示用户程序执行完毕。

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值