Python学习笔记-分支与循环

一、布尔运算

1. 布尔类型

True表示真,False表示假

2. 比较运算符

==恒等,!=不等,>=大于等于,<=小于等于,>大于,<小于

print(1==2)    #False

 判断字符时,根据ASCII码值进行比较

print('a'!='A')    #True   a=97, A=65

字符串有多个字符时,只比较第一位,只有第一位相同时,才会向后比较,以此类推

print('ab'<'aB')      #False   b=98, B=66

 True相当于1,False相当于0

print(True>False)     #True
print(True+True+False)   #2

3. 逻辑运算符

and 逻辑与,只要有一个为假,结果为假

or 逻辑或,只要有一个为真,结果为真

not 逻辑非,序列为真,结果为假,序列为假,结果为真

print(1>2 and 2>0 and 4>2)   #False
print(1>2 or 2>0 or 4>2)    #True
print(not 2)   #False
print(not '')    #True
print(not 0)     #True
print(not None)   #True
print(not [])     #True

优先级 not>and>or

print(2>0 and 1>2 or 3>2 and not 1)     #False
print(2>0 and 1>2 and not 1 or 3>2)     #True

4. 成员运算符

in 如果在序列中找到值,结果为真,没找到,结果为假

not in 如果在序列中找到值,结果为假,没找到,结果为真

list1=[10,[20]]
print(10 in list1)   #True
print(20 not in list1)   #True
print([20] in list1)     #True

 这样在判断某个集合里是否有某元素时,就不需要用循环遍历一个一个比较,只需用成员运算符就好

二、分支语句(条件判断)

1. 基本语法

常用组合if, if-else, if-elif-else(elif可以多个)

例:输入一个数字,如果大于等于90,打印优秀;如果大于等于75,打印良好;如果大于等于60,打印及格;如果小于60,打印不及格(暂不考虑输入不合法的情况)

input1=int(input('请输入一个成绩:'))   #input返回值是str型,要用int()方法转成int型
if input1 >=90:
    print('优秀')
elif input1>=75 and input1<90:
    print('良好')
elif input1>=60 and input1<75:
    print('及格')
else:
    print('不及格')

2. 复合条件判断

例:输入一个年份判断该年是否为闰年

year=int(input('请输入一个年份:'))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print('%d是闰年'%(year))
else:
    print('%d不是闰年'%(year))

3. 条件恒为真(非0,'',[],None)

if 1:
    print('always True')
if 0:
    print('always False')
if '':
    print('always False')
if []:
    print('always False')
if None:
    print('always False')

三、循环语句

1. for循环

1)基本语法

for 循环变量 in range(起始值, 终止值, 步长):  包含起始值,可以省略,默认为0,不包含终止值,步长可以省略,默认为1

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

'''
0
1
2
3
4
5
6
7
8
9
'''

例:打印10以内的奇数

for i in range(1,10,2):
    print(i)
'''
1
3
5
7
9
'''

 2) for循环遍历列表

  • 使用下标遍历
list1=[1,2,3,4,5]
for i in range(len(list1)):
    print(list1[i])
'''
1
2
3
4
5
'''
  • 直接遍历
list1=[1,2,3,4,5]
for one in list1:
    print(one)
'''
1
2
3
4
5
'''

2. while循环

例:打印10以内的奇数

i=1
#方法一  模除
while i<=10:
    if i%2==1:
        print(i)
    i+=1
#方法二  控制步长
while i<=10:
    print(i)
    i+=2
#方法三  置标志位
flag=True
while flag:
    if i>10:
        flag=False
    else:
        if i%2==1:
        print(i)
    i+=1
'''
1
3
5
7
9
'''

3. break和continue

break:跳出整个循环

continue:跳出当次循环

for i in range(1,5):
    if i==3:
        break
    print(i)
'''
1
2
'''
for i in range(1,5):
    if i==3:
        continue
    print(i)
'''
1
2
4
'''

4. pass

占位符,不做任何操作,如果分支或循环里没有任何语句,编译会报错

5. 循环中的else语句

当循环成功执行完毕,会执行一次else中的语句

循环中有break,执行中跳出循环,不会执行else;有continue,会执行else

for i in range(1,5):
    if i==3:
        break
    print(i)
else:
    print('循环执行完毕')
'''
1
2
'''
for i in range(1,5):
    if i==3:
        continue
    print(i)
else:
    print('循环执行完毕')
'''
1
2
4
循环执行完毕
'''

6. 小结

如果有明确的循环次数,建议使用for循环;如果循环次数不确定,建议使用while循环

一般不在for循环中修改列表,使用while循环

例:将一个列表中的元素依次移动到新列表中

list1=[1,2,3,4,5]
list2=[]
while list1:
    item=list1.pop()
    list2.append(item)
for i in list2:
    print(i)
print(list1)

'''
5
4
3
2
1
[]
'''

例:列表中含有多个相同元素,删除这些元素

list1=[1,2,3,2,4,2,5,2]
while 2 in list1:
    list1.remove(2)
print(list1)    #[1, 3, 4, 5]
  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值