小言_互联网的博客

来自python的【条件控制/语句循环/break/continue/else/pass】

406人阅读  评论(0)

一、条件控制

一条或多条语句的执行结果(True/False)来决定执行的代码块。

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3
  • 每个条件后面要使用冒号,表示接下来是满足条件后要执行的语句块。
  • 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  • 在Python中没有switch – case语句
# 判断1-7 奇偶数
a =1;
while a<7 :
    if(a %2 == 0) :
        print(a,'is even')
    else:
        print(a,'is odd')
    a+=1
  • if语句的判断条件是根据表达式的True/False来进行判断的,在python中表示False的数据点击False种类
# True/False
var1 =1
var2 = 0
if var1 :
    print(True,'var1')
else:
    print(False)
if var2:
    print('var2True')
else:
    print('var2False')
#True var1
#var2False
  • 多个if elif else 进行操作。
# 多个if elif else
age = int(input('print your dog age:'))
if age<=0:
    print('Are you hanhan?')
elif age==1:
    print("dog age 14")
elif age==2:
    print("dog age 22")
elif age>2:
    dog_age = 22+(age-2)*5
    print(dog_age)
input("exit")
  • if中常用的操作运算符 < <= > >= == !=,具体可以翻看之前写的文章得知用法。
  • if嵌套,if中嵌套多个内容,当if语句中的条件语句重复,以第一个条件为准
  • if语句中条件过长,可以使用\ 来换行。
  • 在同一个缩进下,表示同一个代码块,不可以使用{}将代码括号起来。这样会表示为一个集合,当有多个语句的时候,还会报错。
age= 2
if age<=0:
    print('Are you hanhan?')
elif age==1:
    print("dog age 14")
elif age==2:
    print('repeat') #repeat
elif age==2:
    print("dog age 22")
elif age==2:
    dog_age = 22+(age-2)*5
    print(dog_age)
    
num=int(input("输入一个数字:"))
if num%2==0:
    if num%3==0:
        print ("你输入的数字可以整除 2 和 3")
    else:
        print ("你输入的数字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你输入的数字可以整除 3,但不能整除 2")
    else:
        print  ("你输入的数字不能整除 2 和 3")

#if (name == "pag"):{
 # print(name == "pag")
  #print("line 2 of if condition")
#}
# File "test.py", line 4
 #   print("line 2 of if condition")
        #^
#SyntaxError: invalid syntax

  • 例子:x取0-99,y取0-199,x=y结束,并计算一共输出几次。
# x = 0-99 y=0-199 x>y =x x=y =x+y x<y =y
#当x=y 的次数,并且停止

import random
a = 0
while(True):
    x =random.choice(range(100))
    y =random.choice(range(200))
    print(x,y)
    a+=1
    if x>y:
        print(x)
    elif x==y:
        print('x=y,and a=',a)
        break
    else:
        print(y)

二、语句循环

(1)while

  • python中循环forwhile,没有do..while / switch..case语句
  • 同样使用冒号和缩进
  • 当条件一直满足的时候,会进入无线循环
  • 如果条件只有一条语句,那么就可以将语句与while写在一行上。
while 判断条件(condition):
    执行语句(statements)……
  • 1-100的总和
# 计算1-100的综合
a =1
sum=0
while a<=100:
    sum+=a
    a+=1
print(sum) #5050
  • while使用else 语句,当while条件为false的时候执行else语句块。
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>

#while else
a=0
while a :
    print(True)
else:
    print(False)
#False

(2)for循环

  • for循环可以遍历任何序列的项目,如一个列表、字符串,遍历可迭代的数据都可以循环。
  • 可以搭配else使用,不满足的时候,使用else后的语句。
for <variable> in <sequence>:
    <statements>
else:
    <statements>

# for
x1=[1,2,3,4,5]
x2=('a','b','c')
x3 ={'one','tow','three'}
x4={'hello':'world','hi':'yesyinnng'}
x5 =set('qwer')
for x11 in x1:
    print(x11) #1 2 3 4 5
for x22 in x2:
    print(x22) #abc
for x33 in x3:
    print(x33)#one tow three
for x44 in x4:
    print(x44)#hello hi  # key
for x55 in x5:
    print(x55) #qwer
for x41 in x4.values(),x4.keys():
    print(x41) # world hello
#x4={'hello':'world','hi':'yesyinnng'}
# x41先遍历 所有的alues 再遍历所有的keys

#for a,b in x4.values():
 #   print(a)
# 需要解析的词太多
for a,b in x4.keys(),x4.values():
    print(a) #hello world  -- a对因的key alue
    
  • dict 使用for进行遍历,keys()对键进行遍历,values()对值进行遍历,items()对key,value都有效,如果直接写变量名,则是输出key,,转换出来最好是str类型。
  • for a in x,y a会先遍历x输出后,再遍历y。注意x,y的内容。并且注意a输出的形式。
# for--dict
dict1 = {1:"one",2:"two",3:"three"}
print(dict1.keys()) #dict_keys([1, 2, 3])
print(dict1.values())#dict_values(['one', 'two', 'three'])

for k1 in dict1.keys():
    print(k1) #1,2,3
for v1 in dict1.values():
    print(v1) # one two three
for a in dict1.keys(),dict1.values():
    print(a,'1')  # a 遍历key之后再遍历alues
    #dict_keys([1, 2, 3]) 1
    #dict_values(['one', 'two', 'three']) 1
#for a1,b1 in dict1.keys(),dict1.values():
#dict 只遍历key  ValueError: too many values to unpack (expected 2)

for a1 in dict1:
    print(a1)# 123

#for a2,b2 in dict1:
 #   print(a)
    #TypeError: 'int' object is not iterable

for a2 in dict1.items():
    print(a2) # items 输出为元祖的形式
    #(1, 'one')
    #(2, 'two')
    #(3, 'three')
for a3,b3 in dict1.items():
    print(a3,b3)
    #1 one
    #2 two
    #3 three
  • break:跳出当前循环体,不再进行下一次循环
  • 如果需要遍历数字序列,可以使用内置range()函数,会生成数列。具体后期补range的具体用法。
  • range(x,y) 获取指定区间的值,左开右闭的取值方法。
  • range(x,y,step) 以一定的增量来获取值,和切片功能相似,step可正、可负
  • range也可以用来创建一个列表list(range(5) 输出[0,1,2,3,4],从0开始
>>>for i in range(5):
...     print(i)
...
0
1
2
3
4

>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...     print(i, a[i])
... 
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
>>>

break、continue、else、pass

  • break 直接跳出所有循环
  • continue 跳出本次循环,还可以继续下一次。
  • 如果在for、while中使用break,会直接退出,else语句不执行。
  • pass是空语句,为了保持程序结构的完整性,不做任何事情,占位语句
for letter in 'Runoob': 
   if letter == 'o':
      pass
      print ('执行 pass 块')
   print ('当前字母 :', letter)
 
print ("Good bye!")
  • 如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句。
  • 如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行!所以else一定会执行。但是while的else只有在false的时候会执行。
  • pass是为了防止语法错误,如果没有内容,那么就先用pass代替一下。

转载:https://blog.csdn.net/qq_39532595/article/details/104931050
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场