第二章 先做键盘侠

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)

输出:
赶跑小灰狼,让后面的客人进来
大灰狼来了,快闭门谢客。
['小白兔', '小青蛙', '绵羊', '松鼠', '熊猫']
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容