第二章 先做键盘侠

2.1 计算机会算术

1.数值运算

打开Spyder,在临时窗口输入命令,就能马上运算

image

2.逻辑运算

Python中的布尔值(Boolean)True(真) 、False(假)

Python中逻辑运算符:and(与) 、or(或) 、not(非)

1)and(与):全真教

image

and运算必须是两个条件都为True才是真,一个为False就返回False。相当于两条连接的桥,要过河必须两条都要经过。

image

2)or(或):

image

or运算只要有一个为真就是真,全部是假才为假。相当于两地之间的两条平行的独木桥,走一条就可以通过。

image

3)not(非)

not运算就是对结果取反。

image

3.判断表达式

1)判断运算符:==(等于) !=(不等于) <(小于) >(大于) <=(小于或等于) >=(大于或等于)

image

2)判断表达式

image

4.运算优先级

按优先级先后排列:

1)若有括号 "()" 将式子括起来,则最优先运算括号里面的

2)幂运算:**

3)乘除法:*、/ 、// (整除)

4)加减法:+、-

5)判断:==、> 、 < 、>= 、 <=

6)逻辑运算:and、or、not

image

除了上述的4中运算符外,Python中还有 位运算符、成员运算符、身份运算符、赋值运算符。下面的链接有这几中运算符的讲解和更加详细的运算符优先级。

Python中运算符及优先级:https://www.runoob.com/python/python-operators.html

2.2 计算机记性好

1. 变量革命

由于数据在内存中的地址过于冗长、难以记忆,因此有了用变量记录数据,给变量起名字然后通过变量名来提取数据。

如:计算机世界里有三个房子,第一个是Jane的、第二个是Marry的、第三个是Kate的。有一天Jane的朋友Tom来访,但是不知道Jane住在哪,就问计算机世界的主宰,告诉Tom,Jane住在第一个房子。Tom就通过访问房子1找到了Jane。

image

Tom找到了Jane后,Jane邀请他进入房间,那么房子里面就有Tom和Jane,即变量运算

image

Marry想要把房子卖出去,找到了买家Jack,手续办完后Jack入住房子2,即变量更新

image

Kate当时这套房子的房贷是800,000元,月利率是0.2%,Kate想算出她每月该还多少。由于房贷和利率固定,可以用一个名字来表示,则有

image

通过上面几个例子可以看出用变量名来访问变量是非常方便的,减少了代码的复用、减少了内存、容易记住变量、将数据妥善保存……

2. 变量的类型

变量大致可以分为动态变量静态变量

****静态变量:事先说明好的,不能修改的变量。****

动态变量:可以对变量的值进行修改更新。

还可以根据变量类型来划分:

1)整型;2)浮点型;3)字符串型;4)字符型;5)布尔型

image

在Python中可以用type()函数来查看变量的类型

image

注意:在Python中 char型相当于字符串型

3.序列

序列相当于一种容器,可以容纳多种类型的变量。在序列中的数据被称为元素,序列是有序的数据集合。序列主要包括:元组列表

1)元组(Tuple)

元组用括号来表示,元素之间用 "," 隔开。

image

元组里面还可以嵌套一个元组。(不仅可以嵌套元组,还可以嵌套列表)

image

访问元组

image

访问元组中的元素

image

尾部查询

image

按找步长查询:格式 元组名[上限:下限:步长]

image

对于序列来说,查找格式都是一样的:序列名[上限:下限:步长]

2)列表(List)

列表用一对中括号表示 "[ ]",里面的元素由逗号隔开。

image

访问列表元素

image

按照步长来访问元素:格式 列表名[上限:下限:步长]

image

列表的查询和元组的查询是非常相似的,但是它们之间也有差别。

3)元组和列表的区别

元组的数据是固定的,一旦建立则不可以在进行更改,而列表可以修改。

image

列表的数据也修改,可以更新。

image

由于元组的数据不能修改,因此元组的对于元组的操作就非常少,而对于列表的操作则多于元组。

image
image

4.词典

词典由一对花括号 { } 表示,词典里面存储的是键值对,即 key:value,每个键值对之间用逗号隔开。

image

字典通过key来查询value

image

字典可以修改元素值

image

字典可以增加元素

image

字典与列表类似,因此字典的操作也很多。

image

元组、列表、字典都是一种容器型的存储结构。元组、列表是序列,元组的数据固定不变,而字典和列表则可以修改。

由于列表和字典的操作较多,在下边给出了两个详细讲解。

列表的详细讲解:https://www.runoob.com/python3/python3-list.html

字典的详细讲解:https://www.runoob.com/python/python-dictionary.html

2.3 计算机懂选择

1.if...else...结构

格式:

if( 判断语句 ): #这里是冒号
        (要有缩进)执行语句……
else: #这里是冒号
        执行语句……

举例:小白兔不能给大灰狼开门,但可以给其他动物开门。

animal = "大灰狼"
if(animal == "大灰狼"):
      print("不开门!")
else:
      print("请进。")

输出:不开门!

animal = "小青蛙"
if(animal == "大灰狼"):
      print("不开门!")
else:
      print("请进。")

输出:请进。

2.小弟站后边

在if else语句中,执行语句前面一定要有缩进,才可以保证语句执行的顺序或等级关系。
缩进
animal = "大灰狼"
if(animal == "大灰狼"):
    print("不开门!")
else:
    print("请进。")
print("请进。")  #没有缩进,无论如何都执行

输出:
不开门!
请进。

if和else语句就像老大,而执行语句就像小弟,只能靠后站。只有两位大哥其中之一打赢了,才会轮到小弟出头(执行语句)。

如果if和else里面的执行语句没有缩进,则会报错。
无缩进错误:期望有一个缩进块

3.if的嵌套使用 与 elif

1)elif语句
格式

if( 判断语句 ): 
        (要有缩进)执行语句……
elif( 判断语句 ):
        (要有缩进)执行语句……
elif( 判断语句 ):
        (要有缩进)执行语句……
elif( 判断语句 ):
        (要有缩进)执行语句……
………
else: 
        执行语句……

举例

i = 2
if(i < 0):
    print("i是负数")
elif(i > 0):
    print("i大于0")
else:
    print("i等于0")

输出: i大于0

2)if的嵌套使用
格式

if( 判断语句 ): 
        (要有缩进)执行语句……
         if( 判断语句 ): 
                (要有缩进)执行语句……
                   if( 判断语句 ): 
                          (要有缩进)执行语句……
                                            …………

举例:接上面的大灰狼例子,如果是其他动物则可以进门然后喝茶,如果这动物是兔妈妈,那么妈妈回来后就要做饭。

animal = "兔妈妈"
if(animal == "大灰狼"):
    print("不开门!")
else:
    print("请进。")
    if(animal == "兔妈妈"):
        print("开始做饭。")
    else:
        print("请喝茶。")

输出:
请进。 
开始做饭。

animal = "小青蛙"
if(animal == "大灰狼"):
    print("不开门!")
else:
    print("请进。")
    if(animal == "兔妈妈"):
        print("开始做饭。")
    else:
        print("请喝茶。")

输出:
请进。 
喝茶。

2.4 计算机能循环

1.for循环

格式

for 元素名 in 序列/字典: #冒号
            执行语句1(前面要有缩进)
            执行语句2(前面要有缩进)
            执行语句3(前面要有缩进)
            ……

1)无须生成序列:
使用 range(次数) 函数

 for i in range(10):
      print(i)
""" 循环10次,输出0 到 9 """
输出:
0
1
2
3
4
5
6
7
8
9

for i in range(5,10):
    print(i)
""" 循环5次,输出5 到 9,不包括10 """
输出:
5
6
7
8
9

2)生成序列:
需要生成一个序列(元组、列表、字典)

"""生成字典,打印字典里的键"""
dict1 = {'Tom': 15, 'Jane': 13, 'Jack': 14, 'Kate': 11}
for x in dict1:
    print(x)
输出:
Tom
Jane
Jack
Kate

"""生成列表,打印列表里面的元素"""
li = [1.3,2,"Hello",True,dict1]
for x in li:
    print(x)
输出:
1.3
2
Hello
True
{'Tom': 15, 'Jane': 13, 'Jack': 14, 'Kate': 11}

"""生成元组,打印元组里面的元素"""
Tuple = (li,12,"haha",dict1)
for x in Tuple:
    print(x)
输出:
[1.3, 2, 'Hello', True, {'Tom': 15, 'Jane': 13, 'Jack': 14, 'Kate': 11}]
12
haha
{'Tom': 15, 'Jane': 13, 'Jack': 14, 'Kate': 11}

for循环比较适合用于循环次数确定的情况。

2.while循环

格式

while(判断语句):
        执行语句1(前面要有缩进)
        执行语句2(前面要有缩进)
        执行语句3(前面要有缩进)
                ……
        直到不满足判断语句时,循环跳出

举例:求和,sum每次加i,i从1开始,每次循环加1,当sum累加到大于等于15时,结束循环。

i = 1
Sum = 0
while(Sum < 15):
    Sum = Sum + i
    i = i + 1
print(Sum)

输出:15

特殊的while循环——死循环
若想让程序一直执行,可以使用死循环

死循环
while(True):
        执行语句1(前面要有缩进)
        执行语句2(前面要有缩进)
        执行语句3(前面要有缩进)
                ……

while循环一般适用于循环次数不确定的情况。

3.continue 和 break

1)continue:跳过此轮循环,执行下一轮循环。
2)break:跳出整个循环。

举例:
现在有一群动物,要来小白兔家做客,
若小白兔看见动物里面有大灰狼,那么就停止客人进入;
若是小灰狼,则赶跑小灰狼,继续下一个客人进入,
最后看白兔家里面有谁。

animals = ["小青蛙","绵羊","小灰狼","松鼠","熊猫","大灰狼","小灰狼","老马"]
home = ["小白兔"]
for animal in animals:
    if(animal == "大灰狼"):
        print("大灰狼来了,快闭门谢客。")
        break;
    elif(animal == "小灰狼"):
        print("赶跑小灰狼,让后面的客人进来")
        continue
    else:
        home.append(animal)
print(home)

输出:
赶跑小灰狼,让后面的客人进来
大灰狼来了,快闭门谢客。
['小白兔', '小青蛙', '绵羊', '松鼠', '熊猫']
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容