python基础语句之循环与判断
三大执行结构
程序执行也是讲究执行顺序的,所以不同的执行顺序对于程序的执行效果有很大的影响。
程序执行的三大结构:
顺序执行:
由上而下依此执行
选择执行:
根据条件是否成立选择后面执行的代码
实现方式判断f语句(if语句:当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用)
迭代循环:for循环 格式:for i in 迭代对象;
循环执行:
一个循环结构重复执行一段代码块,直到满足某个条件结束
实现方式为循环语句(for语句:遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。)(while语句:当条件为真时,循环运行语句块。)
迭代对象:序列类型(列表,字符串,元组)和散列类型(集合和字典)
if判断语句
if–>基础语句样式
if 判断条件:
执行语句……
else:
执行语句……
简单的if语句
恒为真的if判断:
if True:#True为真,即if判断的结果绝对为真
print('循环开始')#if判断为真,判断进入执行判断体
print('结束')#注意空间顺序结构,这个输出函数不在if里面
正常的if语句:
if 1<2:#如果1<2就执行print('1小于2')
print('1小于2')
else:
print('1大于2')
复杂一点的if判断:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
代码示例:
str=eval(input("请输入数字\n"))
#eval函数作用是将str字符类型转换为数字类型
#input函数是输入函数
if str==1:#如果输入的数字是1,就执行print('数字是1')
print('数字是1')
elif str==2:#如果输入的数字是2,就执行print('数字是2')
print('数字是2')
else:#如果都不是就执行print('不是数字')
print('不是数字')
注意:如果不用eval函数的话,会发生异常——>类型错误,因为input输入的类型是str字符类型的,而数字是int类型的
三元表达式:
为真时的结果 if 判定条件 else 为假时的结果
示例:
print(1 if 5 > 3 else 0)#如果5>3就输出1否则输出0
print(1 if 5 < 3 else 0)#同上
循环
未完待续…
循环两大语句:for与while
for语法
for iterating_var in sequence:
statements(s)
while语法
while expression:
statement(s)
while循环就是不停的判断条件是否成立,条件成立则执行循环体,条件不成立时不执行循环体,退出循环。需要注意的是while是先判断再执行。
示例:
count = 0
while (count < 5):#当count小于5的时候执行
print('第{}次:'.format(count))
count = count + 1#这里很重要,如果少写了,那么就变成恒真死循环了
语句详解
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于跳过整个循环(即退出循环),此外"判断条件"还可以是个常值,表示循环必定成立。
break 语句:
打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条件没有False或者序列还没被完全递归完,也会停止执行循环语句。 break语句用在while和for循环中。如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
continue 语句:
跳出本次循环,而break跳出整个循环,这俩一定要区分清哦! continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。continue语句用在while和for循环中。
示例:
i = 1
while i < 5:#当i<5时,执行循环
i += 1#等价于i=i+1
if i % 2 > 0: # 非双数时跳过输出
continue#跳过
print(i) # 输出双数2、4
i = 1
while 1: # 循环条件为1必定成立
print(i) # 输出1~10
i += 1
if i > 5: # 当i大于5时结束循环
break
while循环使用 else 语句else的作用是判断循环是否正常结束,如果循环是被break中断else里的代码块就不再执行。
示例:
count = 0
while count < 3:
print("正在执行循环,这是第{}次".format(count))
count = count + 1
else:
print(count, " 循环结束了")
代码运算结果:
既然while能嵌套,那么for为什么不能:
#输出100以内的质数
prime = []
for num in range(2, 100): # 迭代 2 到 100 之间的数字
for i in range(2, num): # 根据因子迭代
if num % i == 0: # 确定第一个因子
break # 跳出当前循环
else: # 循环的 else 部分
prime.append(num)#添加到列表里面
print(prime)
pass语句:
pass的作用,表示占位符。
while True:
pass
上面这个程序是不动的,但是不报错。
占位符pass的作用:
语句的完整性就相当于一个大家庭,pass的目的是保证语义的完整性。保证格式的完整性就是一个空语句。
for循环:
for i in 'Python': # 循环输出字符串
print('当前字母 :',i)
Number = ['一', '二', '三']#列表
for i in Number: # 循环输出列表里的元素
print('当前数字为 :', i)
扩展:
while循环是先判别后循环, 判别假如满足条件进入循环 本次循环后再次判别 。do-while循环与while循环的不同在于:它先执行循环中的语句,然后再判别表达式能否为真, 假如为真则继续循环;假如为假, 则终止循环。因而, do-while循环至少要执行一次循环语句。 简单来讲就是说while循环是先循环后判别 。(不是python里的)
在编程里基本上什么都可以嵌套,比如判断嵌套循环,循环嵌套循环。