从0开始的Python教程 – Control Structures
————————————————————————————
目录:
流程控制分两种:
- 分支结构 if else
- 循环结构 while for
Booleans & Comparisons
布尔以及比较
布尔值只有两种,一个是真,一个是假,以下是运算符:
等式关系
!= # 不等于
== # 等于
< # 小于
> # 大于
>= # 大于等于
<= # 小于等于
布尔逻辑关键字
not # 取反
or # 或
and # 与
注意!!:
= 和 == 有区别
一个等号是赋值符号,把右边的值给左边。
不是等于,等于是逻辑上左右相等的意思。
print(1!=1)
# False
print(2==2)
# True
print(True!=False)
# True
BOOL = "hello" == "hello"
print(BOOL)
# True
BOOL = 5 > 7
print(BOOL)
# False
if Statements
if语句
格式是这样的
if expression:
statements
#注意这里的缩进,表示这些内容是if里的statements,缩进建议用tab键,必须对齐
举个例子
num = intput("输入一个自然数")
if num >= 0:
print(num)
这里会把用户输入的自然数输出。
if 会判断表达式是否为真 ,如果为真就执行后面缩进的内容。
# 当然if可以嵌套
num = 12
if num > 5:
print("Bigger than 5")
if num <=47:
print("Between 5 and 47")
if num > 47:
print("Bigger than 47")
'''
Bigger than 5
Between 5 and 47
'''
else Statements
else 语句
else和if搭配使用,如果if为假,else就会执行。
if experssion:
statements
else:
statements
num = input("输入一个数字")
if num == 5:
print("数字等于5")
else:
print("数字不等于5")
也有俄罗斯套娃
禁止套娃
num = input()
if num == 5:
print("Number is 5")
else:
if num == 11:
print("Number is 11")
else:
if num == 7:
print("Number is 7")
else:
print("Number isn't 5, 11 or 7")
因为else if太麻烦,所以可以简写成 elif
num = input()
if num == 5:
print("Number is 5")
elif num == 11:
print("Number is 11")
elif num == 7:
print("Number is 7")
else:
print("Number isn't 5, 11 or 7")
Boolean Logic
布尔逻辑
上面提到过了,就是与、或、非三种
分别是
and
or
not
BOOL = not 1 == 1
print(BOOL)
# False
BOOL = True and False
print(BOOL)
# False
BOOL = True or False
print(BOOL)
# True
Operator Precedence
运算符优先级
就和我们的加减乘除一样,运算符是有优先级的。
可以用括号来控制。
注意:没有中括号、大括号的概念。
Python的运算顺序与普通数学的顺序相同:
先加括号,然后取幂,然后乘/除,再加/减。
while Loops
while 循环
while expression:
statements
i = 1
while i <=5:
print(i)
i = i + 1
'''
1
2
3
4
5
'''
要小心死循环
while 1==1:
print("In the loop")
# 程序执行到这里以后会一直循环,没有出口。
# 这个就是死循环,infinite loop
在循环里面,可以用break跳出循环
i = 0
while 1==1:
print(i)
i = i + 1
if i >= 5:
print("Breaking")
break
'''
0
1
2
3
4
Breaking
'''
另外一个是continue,跳过一次循环
i = 0
while True:
i = i + 1
if i == 2:
print("Skipping 2")
continue
if i == 5:
print("Breaking")
break
print(i)
'''
1
Skipping 2
3
4
Breaking
'''
到这里可能有些绕,读者需要自己慢慢思考。
Lists
数据类型——list
比如说有一个数,我们会给他这样声明
a = 1
那如果有100个数呢,1w个数呢,写一万行吗?
# 因为他们是连续的,所以可以用一个变量l表示一堆数,
# 我们可以这样写。
l = [1,2,3,4,5,6,7,8,9,10]
# 那怎么访问到这些数呢?
print(l[0])
# 1
# 用中括号加数字,数字就好像是每个变量的索引一样,可以快速访问到他们
print(l[1])
# 2
# 注意是0序的!!!
list可以放进任何数据类型(DateType),但是我们一般放同一种数据
number = 3
things = ["string", 0, [1, 2, number], 4.56]
print(things[0])
print(things[1])
print(things[2])
print(things[2][2])
print(things[3])
'''
string
0
[1, 2, 3]
3
4.56
'''
这里我们注意到我们这样一行行写print很麻烦。所以刚刚学到的循环就可以派上用场了。
number = 3
things = ["string", 0, [1, 2, number], 4.56]
i = 0
while i<len(things):
print(things[i])
i = i + 1
上面我们也看到了list里面有list,套娃又开始了
一种常见的除了一维,就是二维的。
l = [[1,2,3],[4,5,6],[7,8,9]]
print(l)
i = 0
while i < len(l):
j = 0
while j < len(l[i]):
print(l[i][j],end=' ')
j += 1
print()
i += 1
str类型的数据,也可以这样使用
str = "Hello world!"
print(str[6])
# w
List Operations
list的操作
最简单的一种,是通过下标访问
nums = [7, 7, 7, 7, 7]
nums[2] = 5
print(nums)
# [7, 7, 5, 7, 7]
新加一点东西进之前的list里面
nums = [1, 2, 3]
print(nums + [4, 5, 6])
print(nums * 3)
# [1, 2, 3, 4, 5, 6]
# [1, 2, 3, 1, 2, 3, 1, 2, 3]
判断一个元素是否在list里
words = ["spam", "egg", "spam", "sausage"]
print("spam" in words)
print("egg" in words)
print("tomato" in words)
# True
# True
# False
nums = [1, 2, 3]
print(not 4 in nums)
print(4 not in nums)
print(not 3 in nums)
print(3 not in nums)
# True
# True
# False
# False
List Functions
list相关的函数
list内封装的函数,通过 ’ . ’ 调用
- append函数
nums = [1, 2, 3]
nums.append(4)
print(nums)
# 1,2,3,4
# append 是把一个元素加到list的最后面
- insert 函数
words = ["Python", "fun"]
index = 1
words.insert(index, "is")
print(words)
# ['Python', 'is', 'fun']
# 把一个元素插到指定的位置
- index
letters = ['p', 'q', 'r', 's', 'p', 'u']
print(letters.index('r'))
print(letters.index('p'))
print(letters.index('z'))
# 2
# 0
# ValueError: 'z' is not in list
# index会返回查询的值的下标
list的函数很多,我没有说完,只是举了3个例子,更多的需要读者自己去搜索或者查阅文档
另外,多说一个上面我用过的函数:
- len
可以知道 list 的长度,或者说元素个数
nums = [1, 3, 5, 2, 4]
print(len(nums))
# 5
Range
range函数
range 会自加,也就是会迭代
numbers = list(range(10))
print(numbers)
# 默认从0开始,到10
# 取不到10
n = list(range(1,5))
# 从1开始到5
print(n)
# [1,2,3,4]
n = list(range(5, 20, 2))
# 从5开始到20,步长为2,默认为1
# [5, 7, 9, 11, 13, 15, 17, 19]
for Loops
for循环
我们先回顾一下wile循环:
words = ["hello", "world", "spam", "eggs"]
counter = 0
while counter <= len(words):
word = words[counter]
print(word + "!")
counter = counter + 1
'''
hello!
world!
spam!
eggs!
'''
同样的功能,for就更加方便:
for a in b:
statements
这里的a会在b里迭代,从第一个到最后一个遍历
words = ["hello", "world", "spam", "eggs"]
for word in words:
print(word + "!")
配合range:
for i in range(3):
print("hello!")
# hello
# hello
# hello
同样的有:
words = ["hello", "world", "spam", "eggs"]
for i in range(len(words)):
print(words[i]+!)
文章内容参考了 solo learn
第二章至此结束
基础的操作,到现在为止就讲完了,如果还有不明白的,只能说明前面的知识学习的不够扎实,或者缺少代码量,就是写的少了。
附上一些题和题解