python基本语法教学_python基础语法 第5节课 ( if 、 for )

一、If 条件判断

1、if条件判断的基本形式

python中,if语句用于控制程序的执行,基本形式为:

if  判断条件 :               ----------------→逻辑、成员运算、比较运算

(缩进)执行语句.....

else:                              ----------------→else:后面没有表达式

( 缩进)执行语句.....

其中,①”判断条件” 成立时(非0),则执行其后面的语句,执行内容可以是多行,以缩进来区分表示同一范围。

② else     为可选语句,在if判断条件不成立时,才会执行

③ 缩进   遇到冒号 就要缩进  标准的一个缩进=4个空格,注意4个空格并不等于一个tab。python中用tab是不规范的用法,一般用4个空格。但是在pychram中tab 跟4个空格是一样的,但是在python里面是不一样的!!!!

例1:

age = int(input('请输入您的年龄:'))if age > 18:print('已成年')else:print('未成年')#结果#20#成年 当判断条件成立时,执行判断后面的语句,就结束了,不会再往下执行

例2:

s = 'hello'

if 'l' in s: #成员关系运算符

print('s的字符串里面有l')else:print('s的字符串里面没有l')#结果:s的字符串里面有l

例3:

a = 10b= 5

if a >8 and b > 8: #逻辑运算符

print('a,b都大于8')else:print('a,b并不是都大于8')#结果:a,b并不是都大于8

2.if ...elif...elif....else...

在一个if 表达式中,即一个完整的if ...elif...elif....else...中,如果运行了其中一个条件,其他的分支条件不会再运行了!!!!

总结起来:当其中一个条件满足,其他的条件分支自动屏蔽,不会再运行!!!

if 4 > 3:

print('这是真的')

elif 4 != 3:

print('这也是真的')

else:

print('这是假的')

结果:这是真的

上述第一个条件成立,直接执行运行结果,不会再去执行别的分支了(即使别的分支的条件也是为True)

3.if后面最关心的是什么?------→判断是True 还是False

形式if a: ( 隐含有bool(a),是True 还是False)

① a是None 0 {} [ ] () “”  False ,就是等同于 if False:,就是条件不成立,不会执行if 下面的语句,而是执行else里面的语句

② a 是非空类型的,就等同与 if True:,就是条件成立,直接执行if下的语句,结束。(不会再去处理else了)

a 是True

if 1: #True的,

print('我是if下面的语句')else:print('我是else下面的语句')#结果:我是if下面的语句

a是False

if {}: #False的,

print('我是if下面的语句')else:print('我是else下面的语句')#结果:我是else下面的语句

if not a:判断某个变量是否为空 ,是否存在(用的非常多)

4.else 是可选语句  在判断条件不成立时,执行相关语句

说明else 不是必备的 。要不要加else,根据自己的判断逻辑和业务逻辑去自行决定。(加上else,逻辑会更完整)

a = 10

if a > 18:print('a 的值大于18')#结果:没有输出结果

a = 20

if a > 18:print('a 的值大于18')#结果 a 的值大于18

5.if 的嵌套

例1

a = 4b= 6member= ['java', 'ruby', 'python', "c"]

one_name= 'c'

if a >b:print("我是if下面的语句!")if one_name inmember:print("我是member里面的一种语言")else:print("我不是member里面的一种语言")else:print("我是else下面的语句!")#结果:我是else下面的语句!

a = 8b= 6member= ['java', 'ruby', 'python', "c"]

one_name= 'c'

if a >b:print("我是if下面的语句!")if one_name inmember:print("我是member里面的一种语言")else:print("我不是member里面的一种语言")else:print("我是else下面的语句!")#结果:我是if下面的语句!#我是member里面的一种语言

例2"age1 = input("张三的年龄:")

age2= input("李四的年龄:")if int(age1) >int(age2):print("张三的年龄大于李四")if 1:print("hello")elif int(age1)

if int(age1) >=int(age2):print("张三的年龄大于等于李四")ifTrue:print("world")else:print("其他可能性")

"""结果张三的年龄:19李四的年龄:18张三的年龄大于李四hello张三的年龄大于等于李四world"""

总结 :python运行一个文件的时候,会查看所有顶格写的代码。一个完整的if表达式只会看某一个满足条件的语句。

6.if...if...if...else:  (用的比较多)

if 1:pass

if 2:pass

if 3:pass

else:print('hello') #else是最后一个if成对的

二、for 遍历

什么是遍历?  就是每个元素都想看看(for 循环,遍历,迭代, 是自动播放所有列表(序列)当中的元素)

应用在哪些数据类型:字符串  列表 元组  字典  集合(可迭代的对象就可以for循环)

for循环里面有个隐藏机制:index + 1

例1:列表的迭代

songs = ['爱转角', "晴天", '人来人往', '左手指月']for each insongs:print("正在播放歌曲:{}".format(each))"""正在播放歌曲:爱转角

正在播放歌曲:晴天

正在播放歌曲:人来人往

正在播放歌曲:左手指月"""

列表的切片 字符串的for循环

my_list = ['hello','love','python','lemon']for i in my_list[1:]:print(i)for j inmy_list[0]:print(j)#love

#python

#lemon

#h

#e

#l

#l

#o

例2:元组迭代,同上述列表

例3:字典的迭代

1.对字典使用for循环,取到的默认是字典所有的Key

语法:for each in dict1:  ( 或者 for each in dict1.keys():)

dict1 = {"name": "jay", "age": 28, "hobby": "sing"}for each in dict1: #遍历所有的key

print(each)for each in dict1.keys():#加上key()输出的结果一样

print(each)#结果

name

age

hobby

name

age

hobby

2.取字典的值

语法:for each in dict1.values():    (或者 for each in dict1:   print(dict1[each])   )

dict = {"name": "jay", "age": 28, "hobby": "sing"}for each in dict: #遍历所有的值

print(dict[each])for each in dict.values(): #使用value()函数

print(each)#结果:

jay

28

sing

jay

28

sing

3.取字典的键值对

语法:for each in dict1.items():    (或者 for key,value in dict1.items():)

dict1 = {"name": "jay", "age": 28, "hobby": "sing"}for each in dict1.items():#遍历所有的键值对

print(each)for key,value indict1.items():print('key:valuse是{}'.format(key,value))"""

('name', 'jay')

('age', 28)

('hobby', 'sing')

key:valuse是name

key:valuse是age

key:valuse是hobby

"""

集合也可以for循环,一般不用,用列表即可。

for循环的嵌套:主要用来获取测试用例的数据

(应用:九九乘法表、排序算法(冒泡排序,选择))--------面试

1.range()函数 :用在你想重复执行多少次计算的时候,没有现存的列表可以循环,就用range()

range(1,10)表示取1,2,3,4,5,6,7,8,9,类似于切片,取头不取尾

range(1,10,2),增加步长为2,表示取1,3,5,7,9

for i in range(1, 10,3):print(i)

for i in range(1, 10):print(i, end=' ') #不会换行,以空格隔开

结果:

1

4

7

1 2 3 4 5 6 7 8 9

2.for循环嵌套实例

总结:for 循环的嵌套,就是外层取一个值,内层取全部值,再返回外层。。。。依次循环。(外层一个,内层一遍)

list1 = ['A','B','C','D']

list2= ['E','F']for each1 inlist1:print(each1,end = ' ')for each2 inlist2:print(each2,end = ' ')

结果:A E F B E F C E F D E F

fruits =[

['苹果','香蕉'],

['梨子','橘子'],

['西瓜','草莓']

]for group infruits:print(group)for name ingroup:print(name)

结果:

['苹果', '香蕉']

苹果

香蕉

['梨子', '橘子']

梨子

橘子

['西瓜', '草莓']

西瓜

草莓

测试用例的数据获取:

cases =[

{'url':'/login','method':'get','data':'username'},

{'url':'/logout','method':'post','data':'username'}

]for case incases:print(case)for k,v incase.items():print(k,v)#{'url': '/login', 'method': 'get', 'data': 'username'}#url /login#method get#data username#{'url': '/logout', 'method': 'post', 'data': 'username'}#url /logout#method post#data username

三、while循环(没for循环用的多)

1.while循环的应用场景:没有具体的可迭代对象,没有遍历,不知道要循环多少次,不知道什么时候结束

2.基本语法

while  条件:

代码

3.执行流程:当把while循环下面的子分支执行完毕以后,程序会返回while的条件判断。就是一个加强版的if 判断

while 循环是把for循环的机制手动化了。即while循环需要手动控制

cases =[

{'url':'/login','method':'get','data':'username'},

{'url':'/logout','method':'post','data':'username'}

]

index=0while index

index+= 1

#{'url': '/login', 'method': 'get', 'data': 'username'}#{'url': '/logout', 'method': 'post', 'data': 'username'}

4.break:跳出循环,执行循环体之外后面的代码了(也可以用在for循环)

cases =[

{'url':'/login','method':'get','data':'username'},

{'url':'/logout','method':'post','data':'username'}

]

index=0whileTrue:print(cases[index])if index == 1:print('这里是index={},跳出循环'.format(index))breakindex+= 1

#{'url': '/login', 'method': 'get', 'data': 'username'}#{'url': '/logout', 'method': 'post', 'data': 'username'}#这里是index=1,跳出循环

5.continue:跳出本次循环,执行下一次循环(也可以用在for循环)

index =0while index < 2:print('这里是continue之前')

index+= 1

continue

print('这里是continue之后') #continue跳出本次循环,开始下次循环,永远不会执行这句话print('python')#这里是continue之前#这里是continue之前#python

6.pass:占坑(子语句还没设计好怎么写,就用pass代替,保持语法的完整性)

if 1:pass

elif 2:pass

else:print('python')

7.while循环的嵌套(外层一个,内层一遍)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值