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中的”程序结束“不受任何影响,提示用户程序执行完毕。