python基础知识--5条件判断及循环if/if-else/range/for/while

1.if执行语句
#%%

if condition:
    expression
other_expression


#%%

# 当布尔类型为 0 None 空值的时候,返回False,其他情况返回True

#%%

a = 0

#%%

if a:
print('条件成立')
print('if执行完成')

#%%



2.if-else执行语句
#%%

if condition:
    true_expressions
else:
    false_expressions
other_expressoin


#%%


a = 1

#%%

b = 2

#%%



#%%

if a == b:
print('a 与 b 的值是一样的')
else:
print('a 与 b 的值不一样')

print('if-else 执行结束')

#%%



#%%

if a > b:
print('a 的值大于 b的值')
else:
print('a 的值小于 b的值')

print('if-else 执行结束')

#%%


a = 1

#%%

b = 2

#%%

if a == b:
print('a 等于 b')
print('if执行完毕')



if a<b:
print('a 小于b')
print('if执行结束')

#%%

3.if-else的不足之处

# input() 函数会接受输入数据,返回为 string 类型。


num = input('请输入数字:')

num


type(num)


num = int(num)


num


type(num)


weather= 1 春天

weather= 2 夏天

weather= 3 秋天

weather= 4 冬天


weather = input('请输入数字')


weather = int(weather)



if weather == 1:
print('春天')
else:
if weather == 2:
print('夏天')
else:
if weather == 3:
print('秋天')
else:
if weather == 4:
print('冬天')
else:
print('请输入1-4的正整数')



# 1.嵌套太多,一不留神,容易出bug
# 2.代码看起来很乱,不符合Python优雅风格


4.完善 if-else 的不足之处
#%%

if weather == 1:
print('春天')
else:
if weather == 2:
print('夏天')
else:
if weather == 3:
print('秋天')
else:
if weather == 4:
print('冬天')
else:
print('您输入的数字有误')

#%%

# 1. 嵌套太多
# 2. 代码看起来很乱,不符合Python优雅的特点



if - elif - else

#%%

if condition1:
expression1

elif condition2:
expression2

elif condition3:
expression3

else:
expression

#%%

# elif 必须在if语句后面
# 可书写多个elif进行条件判断
# 如果有一个条件成立,执行相应代码后,跳过整个if语句
# 如果条件都不成立,则执行else语句内容,退出整个if语句
# else 需要和if语句搭配使用,提高逻辑严谨性


weather= 1 春天

weather= 2 夏天

weather= 3 秋天

weather= 4 冬天

#%%

# if - elif - else

#%%

weather = input('请输入数字:')

#%%

weather = int(weather)

#%%



#%%

if weather == 1:
print('春天')
elif weather == 2:
print('夏天')
elif weather == 3:
print('秋天')
elif weather == 4:
print('冬天')
else:
print('请输入1-4正整数')



if weather == 1:
print('春天')
else:
if weather == 2:
print('夏天')
else:
if weather == 3:
print('秋天')
else:
if weather == 4:
print('冬天')
else:
print('您输入的数字有误')


# 使用 if - elif - else 优点:
# 1.代码了更少;
# 2.逻辑清晰,少了很多层嵌套。


5.FOR循环
#%% md

# Python循环: for 循环 / while 循环


for循环,循环/遍历一个可迭代对象,主要是用来遍历 序列(列表、字符串、元祖)、字典和集合

#%%

for 循环变量 in 可迭代对象:
<语句1>
else:
<语句2>

#%%

# 循环变量,代表着当前可迭代对象里的某个元素。
# 这里的循环变量,大家可以自定义,建议取一些方便记忆的名称
# else 也可与 for循环进行搭配,当for循环遍历完成后,执行else里面的内容。


words = 'I am lemon'

for word in words:
print(word,end = '')

运行结果:
I am lemon


fruits_list = ['banana', 'mango','lemon']

#%%

for i in fruits_list:
print(i)

运行结果:
banana
mango
lemon
#

fruits_dict = {'banana':5,'mango':1,'lemon':7}

for key in fruits_dict.keys():
print(key)
运行结果:
banana
mango
lemon

for value in fruits_dict.values():
print(value)
运行结果:
5
1
7

#%%

for key,value in fruits_dict.items():
print(key,value)
运行结果:
banana 5
mango 1
lemon 7



complex_list = [['banana', 'mango','lemon'],[1,2,3]]

#%%

for x in complex_list:
for y in x:
print(y)
运行结果:

banana mango lemon 1 2 3
#%%


6.RANGE()函数用法

# 需求:将 0-9 循环遍历


num = [0,1,2,3,4,5,6,7,8,9]

for i in num:
print(i)
运行结果:
0
1
2
3
4
5
6
7
8
9

#%%

# 需求:将 0-100 循环遍历

#%%


range(start,end[, step])



# start: 计数从 start 开始。默认是从 0 开始。例如range(10)等价于range(0,10);
# end: 计数到 end 结束,但不包括 end。例如:range(0,10) 是[0,1,2,3,4,5,6,7,8,9] 没有10
# step:步长,默认为1。例如:range(0,10) 等价于 range(0,10,1)

#%%

# 根据我们设定的规则,生成一个序列。生成的序列,可供for循环遍历

#%%

# 需要注意的是,range里面只能是整型类型

#%%

for i in range(10.0):
print(i)
运行结果:

TypeError Traceback (most recent call last)

<ipython-input-21-5ded3258cf00> in <module>() ----> 1 for i in range(10.0): 2 print(i)

TypeError: 'float' object cannot be interpreted as an integer



for 循环变量名 in range(start,end[, step]):
<执行语句1>
else:
<执行语句2>



for i in range(0,11,1):
print(i)
else:
print('执行完毕')
运行结果:
0
1
2
3
4
5
6
7
8
9
10
执行完毕

# 需求:将 0-100 循环遍历
for i in range(0,101,1):
print(i)
else:
print('执行完毕')

#%%

# 需求2:在0-9之间,0 2 4 6 8

#%%

for i in range(0,10,2):
print(i,end= ' ')
运行结果:
0 2 4 6 8 
7.For循环与continue、break语句的使用(一)

# 在循环中,根据需求情况,如果需要跳出循环,可以使用 continue break 关键字

# continue 是结束本次循环,进入下一次循环遍历
# break 是结束当前循环,不再执行当前循环所有代码


fruits = ['apple','lemon','pear','lemon','banana','grape','banana','apple']

# 需求1: 不打印lemon
# 需求2: 遇到grape,停止遍历

for i in fruits:
if i == 'lemon':
continue
if i == 'grape':
break
print(i,end= ' ')
运行结果:
apple pear banana 
#%%
8.For循环与continue、break语句的使用(二)

# continue 是结束本次循环,进入下一次循环遍历
# break 是结束当前循环,不再执行当前循环下所有代码

a = [['A', 'B', 'C'], [1,2,3]]

# 需求1: 不打印B


for x in a:
for y in x:
print(y,end= ' ')
运行结果:

A B C 1 2 3
#
for x in a:
for y in x:
if y == 'B':
continue
print(y,end= ' ')
运行结果:
A C 1 2 3 

# 疑问?遍历B的时候,使用break关键字跳出程序,会打印 123吗?

#%%

for x in a:
print(x)
运行结果:
['A', 'B', 'C']
[1, 2, 3]

#%%

for x in a:
if 'B' in x:
break
for y in x:
if y == 'B':
break
print(y,end= ' ')

#%%


9.FOR语句与内置迭代函数

Python 内置了4种常用迭代函数,有:

1. enumerate(seq) # 编号迭代
2. sorted(seq) # 排序迭代
3. reversed(seq) # 翻转迭代
4. zip(seq1,seq2....) # 并行迭代

seq 为 可遍历/可迭代的对象,如列表、字符串、元组

# enumerate()

# 编号迭代,在迭代的时候既返回序列中的编号(默认从0开始),又返回序列中的元素
# 需要两个循环变量,分别接收编号和元素的值

a = 'abcd'

for index,value in enumerate(a):
print(index,value)

运行结果:
0 a
1 b
2 c
3 d
# sorted()  排序迭代

# for循环变量的时候, 默认先遍历序列中较小的值,后遍历序列中较大的值。

# 可迭代对象中的元素,需要是可排序的同类数据


a = [1,5,4,2]

for i in sorted(a):
print(i)

运行结果:

1 2 4 5
#%%

for i in sorted(a,reverse= True):
print(i)
运行结果:
5
4
2
1

# reversed() 翻转迭代

# 将可迭代对象中的元素,从尾到头,进行遍历
# 不是大小排序

a = [1,5,4,2]
for i in reversed(a):
print(i)
运行结果:
2
4
5
1
# zip()

# 同时遍历可迭代对象中,同一序号元素。

# 如果元素长度不一致,只遍历到最短的序列长度

x = [1,2]

y = [3,4]

z = [5,6,7]

for a,b,c in zip(x,y,z):
print(a,b,c)
运行结果:

1 3 5 2 4 6


posted on 2020-10-22 22:17  kunlungege  阅读(230)  评论(0编辑  收藏  举报

导航