一。if运用
结构一:if
1.什么时候需要使用if
如果做某件事情(执行某段代码)需要满足某个条件才行,就考虑使用if.
2.怎么使用if
a.语法
if 条件语句:
(固定缩进)
代码段1
其它语句(别的代码)
b.说明:
1.if - 关键字,是如果的意思。
2.条件语句 - 任意一个有结果的语句,最好结果是布尔。如果不是布尔值,会转换成布尔再判断。
3.: - 固定写法。在python中只要有冒号,冒号后面第一行代码都会有缩进。冒号缩进组合形成一个代码段,相当于c里面的大括号
4.代码段1 - 和if保持一个缩进的语句。可以是一行,也可以是多行。
c.执行过程:
先判断条件语句的结果是否为True.如果为True就执行代码段1,然后再执行后面的其它语句; 如果为False,就不执行代码段1,直接执行if外面的其他语句。
总结:需要满足某个条件才能执行的语句就写在if里面,不管条件是否满足都要执行的语句,写在if外面。
#练习:输入一个数,如果这个数能被3整除,就打印“XX是3的倍数”
num = int(input('请输入一个整数:'))
if num % 3 == 0:
print('%d是3的倍数' % num)
结构二:if-else结构
a.语法
if 条件语句:
(固定缩进)
代码段1
else:
(固定缩进)
代码段1
其它语句(别的代码)
b.说明
else - 关键字,固定写法;不满足if条件的其它情况。
c.执行过程:
先判断条件是否为True,如果为True就执行代码段1;否则执行代码段2。
# 练习:输入一个整数,如果这个数是偶数就打印’xx是偶数‘,否则打印’xx是奇数‘
num1 = int(input('请输入一个整数:'))
if num1 % 2 == 0: #==0可以省略,省略后True = 1时是奇数。
print('num1是偶数') #满足条件才执行。
else:
print('num1是奇数') #不满足条件才执行。
结构三:if - elif - else结构
a.语法
if 条件语句:
(固定缩进)
代码段1
elif 条件语句2: if如果不成立,则判断条件语句2,如果不成立,跳过代码段2,再判断条件语句3
(固定缩进)
代码段2 -- if如果成立,执行代码段1,然后整个if结构结束,直接执行其他语句。
elif 条件语句3:
(固定缩进)
代码段3
其它语句(别的代码)
b.说明
elif - 关键字;在前面的条件不满足的前提下,判断其他条件是否满足。
c.执行过程:
if如果成立,执行代码段1,然后整个if结构结束,直接执行其他语句。
if如果不成立,再判断条件语句2,如果成立,执行代码段2。然后整个fi结构结束,执行其他语句;
以此类推, 如果条件语句都不成立,就执行else 后面的代码段n。
注意:a.后面的条件语句的判断都是在前面的条件不成立的前提下执行的。b.else不是一定要写,根据情况后面的else结构可以没有!
#练习月薪多少决定去哪儿玩
salary = 2
if salary <= 0.5:
print('家里蹲')
elif salary <=1:
print('同城游')
elif salary <= 1.5:
print('国内游')
else :
print('国外游!')
结构四:if的嵌套使用:在if结构中还可以再写入if结构。
如果输入一个数,如果是偶数,打印偶数。并判断这个偶数是否整除4
num = int(input('请输入一个整数:'))
if num % 2 ==0:
print('%d是一个偶数' % num)
#嵌套的if
if num % 4 ==0:
print('%d是4的倍数。' % num)
else:
print('%d不是4的倍数。'% num)
else:
print('这是一个奇数。')
#也可以嵌套if语句。
结构五:if在python中的三目运算符
C/java/JS语言中有一个三目运算符: 表达式?值1:值2 -> 判断表达式的值是否为True,为True整个 表达式的结果是值1,否则是值2.
python中的三目运算符:值1 if 表达式 else 值2 -> 跟上面一样。
当我们要根据某个条件是否成立,获取不同的值的时候才使用三目运算。
num1,num2 = 10,100 # 比较哪个数大。
max =num1 if num1 > num2 else num2
二。for循环
1.为什么要使用循环
python中的循环结果有两种:for循环和while循环
当程序实现实现某个功能的时候发现某个操作需要重复执行,这个时候就考虑使用循环。
2.for 循环
a.语法
for 变量 in 序列:
(固定缩进)
循环体
b.说明
- for - 关键字
- 变量 - 一个变量名,可以是已经赋值过的变量,也可以是新的变量(一般是新的变量)。
- in - 固定写法
- 序列 - 属于序列类型的数据;python中的序列有:字符串、列表、字典、集合、元祖、range/迭代器、生成器
- : - 固定写法。
- 循环体 - 需要重复执行的代码就放在循环体中;需要与for保持一个缩进。
c.执行过程(重要!)
让变量在序列中取值,一个一个的取,取完为止;每取一个值,执行一次循环体。
序列中元素的个数,决定了循环体执行的次数。
#练习:给一个字符串'asdf 234324$%^& awef',统计这个字符串中数字字符的个数。
sgsu = 0
for num in 'asdf 234324$%^& awef':
if '0' <= num <='9':
sgsu +=1
print('数字个数:%d' % sgsu)
3.range函数:
range(N) -- 产生数字序列0~N-1 (N必须是整数,N大于0)
range(M,N) --产生数字序列M~N-1 (M,N必须是整数,N>M)
range(M,N,step) --从M开始,每次值加step产生下一个数字,直到N前一个位置。(M,N必须是整数)
#计算1+2+3……100
he = 0
for num3 in range(1,101,1): #最后一个1可以省略。
he += num3
print(he)
三。while循环
a.语法
while 条件语句:
(固定缩进)
循环体
b.说明
- while - 关键字;当……的时候
- 条件语句 - 和if后面的条件要求一样,只要有结果就行。(赋值语句不行,别的语句都行。)
- : - 固定写法。
- 循环体 - 需要重复执行的语句写在循环体中;循环体和while保持一个缩进。
c.执行过程
当程序执行到while循环,就先判断条件语句是否为True,为True就执行一次循环体,执行完循环体再判断条件语句是否为True,再执行循环体……直到判断条件语句的结果是False,循环就结束,直接执行后面的其它语句。
#练习:注册输入密码。要求密码至少6位
str4 = input('请输入密码:')
while len(str4) < 6:
str4 = input('请重新输入密码:')
print('密码输入完成!')
for和while的选择
for循环可以做到的while都能做到,while能做到的for不一定可以做。
使用for:a.遍历序列 b.循环次数确定
使用while:a.死循环 b.循环次数不确定
四。continue break else
1.continue是python关键字,只能用在循环体中
功能:执行循环体执行到continue的时候,结束当次循环,直接进入下次循环的判断。 for循环变量去取下一个值;while循环直接去判断while后面的条件是否为True。
for x in range(3):
print('234we')
print('werew')
continue #第三个print不执行,进入下次的循环。
print('sdfwq23')
x=1
while x < 100:
x += 1
if x % 3 == 0:
continue
print(x)
2.break是python关键字,只能用在循环体中!
功能:执行循环体的时候遇到break循环直接结束。直接执行循环后面的其它语句。
#找到大于111的数字当中,第一个能被17整除的数
num = 111
while True:
if num % 17 ==0:
print(num)
break
num += 1
3.else
1.for else
for 变量 in 序列:
(固定缩进)
循环体
else:
(固定缩进)
代码段
2.while else
while 条件语句:
(固定缩进)
循环体
else:
(固定缩进)
代码段
注意:执行过程:循环执行过程不变,else后面的代码段是在循环自然结束时就会执行;如果是因为遇到break而结束循环,就不会执行。
for x in range():
print(x)
if x ==3:
break
else:
print('for自然结束') #循环遇到break不会执行
print('asdfqw') #不管循环怎么结束都会执行