一、条件控制
一条或多条语句的执行结果(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中循环
for
和while
,没有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代替一下。