一、分支结构:if语句
if语句是基本的条件测试语句,用来判断可能遇到的不同的情况,并针对不同的情况选择执行某一部分语句
基本格式:
if <条件>:
<语句>
elif <条件>:
<语句>
else:
<语句>
这里需要注意的是,用代码的缩进来表示分层,,并不像c语言中大于一条语句要用花括号,处于同一级的代码缩进量要保持一致。
比较运算符 | 含义 |
---|---|
a == b | a等于b,返回为真,否则为假 |
a != b | a不等于b返回为真,否则为假 |
a > b | a大于b返回为真,否则为假 |
a < b | a小于b返回为真,否则为假 |
a >= b | a大于等于b返回为真,否则为假 |
a <= b | a小于等于b返回为真,否则为假 |
上述几种比较运算符,可以用于对数字、字符串、列表、元组及字典进行比较,除了上述的比较运算符外,在条件中也可以使用逻辑运算及一些其他语句。
简单示例
(1) 数字比较
代码:
a = 1
b = 2
if a == b:
print('a = b')
elif a > b:
print('a > b')
else:
print('a < b')
执行结果:
a < b
(2)字符串比较
从第一个字符串开始比较,比较的是字符对应的ASCII码大小,如果两个字符串字符相同,但是一个字符串的字符多,则多的大。
代码:
a = 'hi'
b = 'hello'
if a == b:
print(a)
elif a > b:
print(b)
else:
print(a+b)
执行结果:
hello
(3)列表比较
代码:
a = [2,2]
b = [1,4]
if a == b:
print(a)
elif a > b:
print(b)
else:
print(a+b)
执行结果:
[1, 4]
(4)逻辑运算非
代码:
if not 1:
print('true')
else:
print('false')
执行结果:
false
if 嵌套语句
代码:
a = 1
b = 2
if a >= b:
if a == b:
print('a = b')
else:
print('a > b')
else:
print('a < b')
执行结果:
a < b
二、循环语句for
for语句是Pyhon中的循环控制语句。for语句可以用于循环遍历某一对象, 它还具有一个附带的else块。附带的else块是可选的,主要用于处理for语句中包含的break语句。for语句中的break语句,可以在需要的时候终止for循环。如果for循环未被break语句终止,则会执行else块中的语句。在for语句中还可以使用contiune 语句,coniune语句可以跳过位于其后的语句,开始下一轮循环。
语法结构:
for < in <对象集合>:
if<条件>:
break # 终止循环
if<条件>:
continue # 使用continue跳过其他语句,继续循环
<其他语句>
else:
<> # 如果循环未被break语句终止,则执行else块中语句。
简单示例:
代码:
for i in [1,2,3,4,5]:
if i == 6:
break
if i == 2:
continue
print(i)
else:
print('all')
执行结果:
1
3
4
5
all
for语句中的对象集合可以实列表、字典或元组等,也可以是通过range()函数产生的一个整数列表,以完成计数循环,range()函数原型如下:
range( [ start, ] stop [ , step] )
- start 可选参数,起始数
- stop 终止数,如果range只有一个参数x,那么range生产一个从0至x-1的整数列表
- step 可选参数,步长
代码:
for i in range(2, 6):
print(i)
执行结果:
2
3
4
5
代码:
for i in range(0,6,2):
print(i)
执行结果:
0
2
4
for语句遍历字典,默认遍历字典里的键值
代码:
people = { 'tom':170, 'tony':180, 'anni':160, 'deny':187 }
for name in people:
print(people[name])
执行结果:
170
180
160
187
在for循环中,除了循环对象可以实元组以外,循环的目标也可以是元组,可以在循环的过程中对元组进行赋值等操作。
代码:
tt = ( ('a', 'b'), ('c', 'd'), ('e', 'f') )
for t1 in tt: # 此处的t1相当于一个元组
print(t1)
执行结果:
('a', 'b')
('c', 'd')
('e', 'f')
代码:
tt = ( ('a', 'b'), ('c', 'd'), ('e', 'f') )
for (x, y) in tt: # 循环的目标是一个元组
print(x, y)
执行结果:
a b
c d
e f
利用for+if语句,实现50-100内素数的输出
代码:
import math
for i in range( 50,100+1 ):
for t in range( 2,int(math.sqrt(i))+1 ): //这里利用平方根,只要求解到平方根,没有因数即可。
if i % t == 0:
break
else:
print(i)
执行结果:
53
59
61
67
71
73
79
83
89
97
三、循环结构:while语句
while语句也是循环控制语句,与for循环不同的是,while 语句只有在测试条件为假时才会停止。在while的语句块中,一定要包含改变测试条件的语句, 以保证循环能够结束,避免死循环的出现。
while 语句包含与if语句相同的条件测试语句,如果条件为假,则终止循环。while 语句有一个可选的else语句块,与for循环中的else语句块一样,当while循环不是由break语句终止时,则会执行else语句块中的话。.continue语句也可以用于whle循环中,其作用与if语句中的 contiune相同,都是跳过continue后的语句,进入下一个循环。
while的一般格式如下:
while <条件>:
if <条件>:
break # 终止循环
if <条件>:
continue # 跳过后面的语句
<其他语句>
else:
<语句> # 如果循环未被break语句终止,则执行
注意:while不像for循环,可以遍历某一对象的集合,while最容易出现的问题就是测试条件为真,导致死循环,因此在使用while循环是,应该仔细检查while语句测试条件,避免出现死循环。
代码:
x = 1
while x < 5:
print(x)
x = x + 1 # 改变条件,使while增加,以结束循环
执行结果:
1
2
3
4
使用while遍历列表
代码:
I = [ 'a', 'b', 'c', 'd']
i = len(I) # 获得列表长度
while i != 0:
print(I[-i])
i = i - 1
执行结果:
a
b
c
d