001讲

0. Python 是什么类型的语言?

Python是脚本语言
以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则。

特性:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
    • 语法和结构通常比较简单
    • 学习和使用通常比较简单
    • 通常以容易修改程序的“解释”作为运行方式,而不需要“编译”
    • 程序的开发产能优于运行性能
一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。


1. IDLE 是什么?
IDLE是一个Python Shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!

像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。同样的,我们可以利用IDLE这个shell与Python进行互动。


2. print() 的作用是什么?
print() 会在输出窗口中显示一些文本

3. 为什么 >>>print('I love fishc.com ' * 5) 可以正常执行,但 >>>print('I love fishc.com ' + 5) 却报错?
Python 中不能把两个完全不同的东西加在一起,比如说数字和文本

乘以一个整数来翻倍就具有一定的意义了,前边的例子就是将 "I love fishc.com" 这个字符串打印五次。


4. 如果我需要在一个字符串中嵌入一个双引号,正确的做法是?
可以利用反斜杠(\)对双引号转义:\"

或者用单引号引起这个字符串。例如:' I l"o"ve fishc.com '

5.动手试试直接输入 >>>5+8 与输入 >>>print(5+8) 有何不同?
不妨试试直接直接输入 >>>'I love fishc.com!' 与输入 >>>print('I love fishc.com!') 有何不同?
没错,直接输入是将结果及类型打印到屏幕上,而print是将结果打印到屏幕上

Python学习(学习视频b站小甲鱼) Python 第1张

18:35:03  2020-02-10

 

002讲

ctrl+n新建

python要注意缩进 if guess==8:#==判断是否相等  =赋值

BIF=内置函数(built-in function

help(bif)了解功能

 

1. 用课堂上小甲鱼教的方法数一数 Python3 提供了多少个 BIF?

Python学习(学习视频b站小甲鱼) Python 第2张

 

 
在 Python 或 IDLE 中,输入 dir(__builtins__) 可以看到 Python 提供的内置方法列表(注意,builtins 前后是两个下划线哦)其中小写的就是 BIF。如果想具体查看某个 BIF 的功能,比如 input(),可以在 shell 中输入 help(input),就会得到这个 BIF 的功能描述。哦,答案应该是 68 个。


2. 在 Python 看来:'FishC' 和 'fishc' 一样吗?

不一样,因为 Python 是一个“敏感的小女孩”,所以不要试图欺骗她,对 Python 来说,fishc 和 FishC 是完全不同的两个名字,所以编程的时候一定要当心。不过 Python 会帮助解决可能因此出现的问题,例如只有当标识符已经赋值后(还记得吗,小甲鱼在课堂中说过 Python 的变量是不用先声明的)才能在代码中使用,未赋值的标识符直接使用会导致运行时错误,所以你很快就可以根据经验发现此问题。


3. 在小甲鱼看来,Python 中什么是最重要的?你赞同吗?

缩进!在小甲鱼看来,缩进是 Python 的灵魂,缩进的严格要求使得 Python 的代码显得非常精简并且有层次。

所以在 Python 里对待缩进代码要十分小心,如果没有正确地缩进,代码所做的事情可能和你的期望相去甚远(就像C语言里边括号打错了位置)。

如果在正确的位置输入冒号“:”,IDLE 会自动将下一行缩进!


4. 这节课的例子中出现了“=”和“==”,他们表示不同的含义,你在编程的过程中会不小心把“==”误写成“=”吗?有没有好的办法可以解决这个问题呢?
C语言的话,如果 if( c == 1 ) 写成 if( c = 1 ),程序就完全不按程序员原本的目的去执行,但在 Python 这里,不好意思,行不通,语法错误!Python 不允许 if 条件中赋值,所以 if c = 1: 会报错!


5. 你听说过“拼接”这个词吗?

在一些编程语言,我们可以将两个字符串“相加”在一起,如:'I' + 'Love' + 'FishC' 会得到 'ILoveFishC',在 Python 里,这种做法叫做拼接字符串

19:03:00 2020-02-10

003讲

 变量Python学习(学习视频b站小甲鱼) Python 第3张

 

 变量名不能用数字开头  大小写不能忽略

字符串单引号双引号都可以 但是两边要相同

转义字符\

打印let's  let\'s

Python学习(学习视频b站小甲鱼) Python 第4张

 

 三重引号字符串

Python学习(学习视频b站小甲鱼) Python 第5张

 

 

1.除了使用饭斜杠(\)进行字符转义,还有什么方法可以打印:Let's go! 这个字符串?
>>>"Let's go!"

2.如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?

>>>str = r'C:\Program Files\FishC\Good''\\'

3.使用变量,计算一年有多少秒?

DaysPerYear = 365

HoursPerDay = 24

MinutesPerHour = 60

SecondsPerMinute = 60

result = DaysPerYear * HoursPerDay * MinutesPerHour * SecondsPerMinute

print(result)

10:24:06 2020-02-11

004讲

比较操作符Python学习(学习视频b站小甲鱼) Python 第6张

 

 空格不影响编程 (为了美观)

分支语法

if 条件:

   条件真(True)

else:

    条件(false)

 

while循环

while条件:

     true条件

 

and逻辑操作符得到bool值

生成随机数 random模块

    randint()#可以返回一个随机整数

进入死循环 快捷键 CTRL + C(强制结束)

    造成死循环的原因是 while 后边的条件永远为真(True),在 Python 看来,只有以下内容会被看作假(注意冒号括号里边啥都没有,连空格都不要有!):False None 0 "" '' () [] {}

 

1. 请写出与 10 < cost < 50 等价的表达式

(10 < cost) and (cost < 50)


2. Python3 中,一行可以书写多个语句吗?

可以,语句之间用分号隔开即可,不妨试试:
>>> print('I love fishc');print('very much!')


3. Python3 中,一个语句可以分成多行书写吗?

可以 一行过长的语句可以使用反斜杠或者括号分解成几行

3>4 and \
    1<2
( 3 > 4 and
  1 < 2 )

4. 请问Python的 and 操作符 和C语言的 && 操作符 有何不同?

python

1and3  ->4    0and1  ->0

C

 

1&&3  ->1  0 &&1  ->0

 

5.

temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
        print(' ', end = '')
        i = i - 1
    j = number
    while j:
        print('*', end = '')
        j = j - 1
    print()
    number = number - 1

Python学习(学习视频b站小甲鱼) Python 第7张

 

 

 

 

13:18:08 2020-02-11

005讲

数值类型

 整型 长度不受限制

浮点型 (区分整型有小数点)

e记法Python学习(学习视频b站小甲鱼) Python 第8张

 

 bool型 true=1 false=0

相互转换Python学习(学习视频b站小甲鱼) Python 第9张

 

 

  a=5.99  c=int(a) c=5  截取整数部分

a=520 b=float(a)  b=520.0

a=5.99 b=str(a)  b='5.99'

c=str(5e19)  c=  '5e19'

 

type()     #确定类型

isinstance()

eg: insintance(a,str)   返回true

  insintance(a,int) 返回false

 

1. 你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?

你可能听说过计算机是很“笨”的,究其根本是因为它只认识二进制数,所以所有的编程语言最终都会转换成简单的二进制序列给 CPU 按照一定的规则解析。
由于二进制只有两个数:0 和 1,因此用 0 和 1 来表示 False 和 True 再适合不过了,因为不用浪费资源在转换的过程上!


2. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?

小数取整会采用比较暴力的截断方式,即向下取整

但那是对于正数来说……对于负数则刚好相反 —— 是向上取整


3. 我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?

int() 固然没那么“聪明”,但机器是死的,鱼油是活的!
5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5
5.6 “四舍五入”结果为:6,int(5.6+0.5) == 6

 

 

13:32:12 2020-02-11

006讲

算术操作符 +  -  *  /

%取余

**幂乘

    3**2  三的二次幂

/返回浮点型

// 地板除法

      10//8得到1

      3.0//2.0得到1.0

a=a+3 -> a+=3

 

优先级 先乘除再加减 右括号先算括号里的

  比较操作符 优先于 逻辑操作符

  一元(单目)操作符

  双目操作符 

      幂运算 高于左面 低于右面Python学习(学习视频b站小甲鱼) Python 第10张

 

 

 ------------------------------------------------------------------------------------------------------------

 

  逻辑操作符  and or not

      and 同真为真

      or 一真为真

      not 一元 取反

    

Python学习(学习视频b站小甲鱼) Python 第11张

 

4. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9

如果你的回答是 0,那么小甲鱼很开心你中招了!
答案是:4

not or and 的优先级是不同的:not > and > or

我们按照优先级给它们加上括号:(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
== 0 or 0 or 4 or 6 or 9
== 4

为啥是 4?

大家还记得第四讲作业提到的“短路逻辑”吗?3 and 4 == 4,而 3 or 4 == 3。
所以答案是:4

 

 13:43:00 2020-02-11

007讲 008讲 009讲

分支和循环

框架 

    加载背景音乐

    播放背景音乐(循环)

    我方飞机诞生

    interval = 0 #定义一个间隔

 

    while true

      if 用户x掉

        退出

      

      interval += 1

      if interval ==50:

        interval = 0:

        小飞机诞生

      小飞机移动位置

      屏幕刷新

 

      if用户鼠标移动

        我方飞机中心位置=鼠标位置

        屏幕刷新

      if 我方与对方撞击

        我方挂 切换撞击音乐 

        修改图案    

        打印game over

        停止音乐 最好淡出

 

 

elif  ->  else ifPython学习(学习视频b站小甲鱼) Python 第12张

 

 悬挂else   else匹配错误

条件表达式 三元操作符 

  Python学习(学习视频b站小甲鱼) Python 第13张

 

 断言 assert  #用于置入检查点 保证条件真才正常工作

  assert后条件为假 自动崩溃 抛出assertionerror异常

  >>>assret 3>4

 

while条件:

  循环体

 

for循环

for 目标 in 表达式:

  循环体

Python学习(学习视频b站小甲鱼) Python 第14张 Python学习(学习视频b站小甲鱼) Python 第15张

 

 

range()Python学习(学习视频b站小甲鱼) Python 第16张

 

 

 range([start,]  stop [, step=1] )  Python学习(学习视频b站小甲鱼) Python 第17张

 

 

break continue

  break 终止循环 跳出循环体Python学习(学习视频b站小甲鱼) Python 第18张

   continue 终止本轮循环 并开始下一轮循环  开始下一轮循环前测试循环条件  true 开始下一轮循环

        Python学习(学习视频b站小甲鱼) Python 第19张

 

 

 15:17:43 2020-02-11

 

010讲 

列表

  数组 放在一起数据必须类型一致

  Python无数组 有列表

创建普通列表 用 [ , , , , ,  ] 创建

    可以放不用类型元素Python学习(学习视频b站小甲鱼) Python 第20张

 

     可以创造空列表 empty=[]

向列表添加元素->append()Python学习(学习视频b站小甲鱼) Python 第21张

 

   用 . 调用

   只能添加一个元素

extend()  #使用一个列表 扩展另一个列表Python学习(学习视频b站小甲鱼) Python 第22张

 

 

insert()   #两个参数 第一个是位置 第二个是插入元素内容  从0开始

       Python学习(学习视频b站小甲鱼) Python 第23张

 

 16:24:04 2020-02-11

011讲

从列表中获取元素 #索引值从0开始

  menber[0]

交换 01位置元素 

  temp=member[0]

  member[0] = member[1]

  member[1] = temp

删除 

  remove()  #必须知道元素具体名字

       member.remove('fish ')

  del

    del member[1]

    还可以用于删除整个列表->del member

  pop ()   #python是用栈存储 

    member.pop()Python学习(学习视频b站小甲鱼) Python 第24张

 

 

 

列表分片Slice  Python学习(学习视频b站小甲鱼) Python 第25张

 

     包头不包尾  左闭右开Python学习(学习视频b站小甲鱼) Python 第26张

 

               Python学习(学习视频b站小甲鱼) Python 第27张

 

   member[ : ]       # 用途 要修改列表  把之前的做一个拷贝member2=member[ : ]

            如果直接=member  那么 member改变  2也改变

           Python学习(学习视频b站小甲鱼) Python 第28张

 

 

012讲

常用列表操作符

 

比较操作符

  列表不相等 返回第一个元素比较值

 

 

逻辑操作符

  

连接操作符 

  Python学习(学习视频b站小甲鱼) Python 第29张

 

   错误:Python学习(学习视频b站小甲鱼) Python 第30张

 

 

重复操作符

  Python学习(学习视频b站小甲鱼) Python 第31张

 

 

成员关系操作符 in    not in

  Python学习(学习视频b站小甲鱼) Python 第32张

 

   无法判断列表里的列表  只能判断一个层次内的是否存在

      Python学习(学习视频b站小甲鱼) Python 第33张

 

     列表中的列表中元素值   list[1][1]   #类似C语言的二维数组

 

count  ->list3 . count(123)    #123在list3中出现多少次

index  -> list3.index(123)      #123的位置

    list3.index(123,3,7)   #123在列表3-7范围 出现的位置

reverse  ->list3. reverse()    #整个列表翻转

sort  ->list3.sort()   #从小到大排序

  ->sort(func,key)

  ->sort(reverse=true)->list3.sort(reverse=true)    #从大到小排序

 

17:02:04 2020-02-11

 

013讲

元组tuple  #与列表相似  元素一点定义不可改变

创建和访问元组

    与列表相似Python学习(学习视频b站小甲鱼) Python 第34张

     修改一个元素会报错

    元组标志是不是()  ->如果只有一个元素则需要在后面加,Python学习(学习视频b站小甲鱼) Python 第35张

 

     Python学习(学习视频b站小甲鱼) Python 第36张

 

 更新和删除元组

    在元组中插入一个元素Python学习(学习视频b站小甲鱼) Python 第37张

 

           拆分成两半 然后用拼接操作符 分别拷贝一下 再插入

元组相关操作符: 拼接、重复 (*8)、逻辑、关系、成员in   not in

17:24:16 2020-02-11

 

014讲

字符串的方法及注释   Python -help 可以查找帮助

capitalize() 把字符串的第一个字符改为大写 Python学习(学习视频b站小甲鱼) Python 第38张
casefold() 把整个字符串的所有字符改为小写 Python学习(学习视频b站小甲鱼) Python 第39张
center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串 Python学习(学习视频b站小甲鱼) Python 第40张
count(sub[, start[, end]]) 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。 Python学习(学习视频b站小甲鱼) Python 第41张
encode(encoding='utf-8', errors='strict') 以 encoding 指定的编码格式对字符串进行编码。  
endswith(sub[, start[, end]]) 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。 Python学习(学习视频b站小甲鱼) Python 第42张
expandtabs([tabsize=8]) 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。 Python学习(学习视频b站小甲鱼) Python 第43张
find(sub[, start[, end]]) 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。 Python学习(学习视频b站小甲鱼) Python 第44张
index(sub[, start[, end]]) 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。  
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。  
isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。  
isdecimal() 如果字符串只包含十进制数字则返回 True,否则返回 False。  
isdigit() 如果字符串只包含数字则返回 True,否则返回 False。  
islower() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。  
isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False。  
isspace() 如果字符串中只包含空格,则返回 True,否则返回 False。  
istitle() 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。 Python学习(学习视频b站小甲鱼) Python 第45张
isupper() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。  
join(sub) 以字符串作为分隔符,插入到 sub 中所有的字符之间。 Python学习(学习视频b站小甲鱼) Python 第46张
ljust(width) 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。  
lower() 转换字符串中所有大写字符为小写。  
lstrip() 去掉字符串左边的所有空格  
partition(sub) 找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 ('原字符串', '', '') Python学习(学习视频b站小甲鱼) Python 第47张
replace(old, new[, count]) 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。  
rfind(sub[, start[, end]]) 类似于 find() 方法,不过是从边开始查找。  
rindex(sub[, start[, end]]) 类似于 index() 方法,不过是从边开始。  
rjust(width) 返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。  
rpartition(sub) 类似于 partition() 方法,不过是从右边开始查找。  
rstrip() 删除字符串末尾的空格。  
split(sep=None, maxsplit=-1) 不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。

Python学习(学习视频b站小甲鱼) Python 第48张Python学习(学习视频b站小甲鱼) Python 第49张

splitlines(([keepends])) 在输出结果里是否去掉换行符\n,默认为 False,不包含换行符;如果为 True,则保留换行符。。  
startswith(prefix[, start[, end]]) 检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。  
strip([chars]) 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。 Python学习(学习视频b站小甲鱼) Python 第50张
swapcase() 翻转字符串中的大小写。  
title() 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。  
translate(table) 根据 table 的规则(可以由 str.maketrans('a', 'b') 定制)转换字符串中的字符。  
upper() 转换字符串中的所有小写字符为大写。  
zfill(width) 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。 z->zero

 

20:00:36 2020-02-11

 

015讲

format方法 字符串的格式化问题 按照统一规格输出 

     位置参数Python学习(学习视频b站小甲鱼) Python 第51张

 

     关键字参数Python学习(学习视频b站小甲鱼) Python 第52张

 

 

      可以综合使用,但位置 参数要在关键字参数之前

 

字符串格式化符号转义

符号 说明                              
%c 格式化字符及其 ASCII 码 Python学习(学习视频b站小甲鱼) Python 第53张Python学习(学习视频b站小甲鱼) Python 第54张
%s 格式化字符串  Python学习(学习视频b站小甲鱼) Python 第55张
%d 格式化整数  Python学习(学习视频b站小甲鱼) Python 第56张
%o 格式化无符号八进制数  Python学习(学习视频b站小甲鱼) Python 第57张
%x 格式化无符号十六进制数  Python学习(学习视频b站小甲鱼) Python 第58张
%X 格式化无符号十六进制数(大写)  Python学习(学习视频b站小甲鱼) Python 第59张
%f 格式化浮点数字,可指定小数点后的精度  Python学习(学习视频b站小甲鱼) Python 第60张
%e 用科学计数法格式化浮点数  Python学习(学习视频b站小甲鱼) Python 第61张
%E 作用同 %e,用科学计数法格式化浮点数  Python学习(学习视频b站小甲鱼) Python 第62张
%g 根据值的大小决定使用 %f 或 %e  Python学习(学习视频b站小甲鱼) Python 第63张
%G 作用同 %g,根据值的大小决定使用 %f 或者 %E  

 

 格式化操作符辅助命令

符号 说明  
m.n m 是显示的最小总宽度,n 是小数点后的位数 Python学习(学习视频b站小甲鱼) Python 第64张
- 用于左对齐 Python学习(学习视频b站小甲鱼) Python 第65张
+ 在正数前面显示加号(+) Python学习(学习视频b站小甲鱼) Python 第66张Python学习(学习视频b站小甲鱼) Python 第67张
# 在八进制数前面显示 '0o',在十六进制数前面显示 '0x' 或 '0X' Python学习(学习视频b站小甲鱼) Python 第68张Python学习(学习视频b站小甲鱼) Python 第69张
0 显示的数字前面填充 '0' 取代空格

Python学习(学习视频b站小甲鱼) Python 第70张

 

 Python 的转义字符及其含义

符号 说明
\' 单引号
\" 双引号
\a 发出系统响铃声
\b 退格符
\n 换行符
\t 横向制表符(TAB)
\v 纵向制表符
\r 回车符
\f 换页符
\o 八进制数代表的字符
\x 十六进制数代表的字符
\0 表示一个空字符
\\ 反斜杠

 

17:22:12 2020-02-12

 016讲

 

序列

      列表 元组 字符串Python学习(学习视频b站小甲鱼) Python 第71张

 

 list()把一个可迭代对象转换为列表

    不带参数 生成一个空列表 

    带一个iterable迭代器

Python学习(学习视频b站小甲鱼) Python 第72张

 

 sumPython学习(学习视频b站小甲鱼) Python 第73张

 

     

 >>>list(ennumberate(numbers))      #列表每个元素变成一个元组,,元组前加了一个index值

 

 zip     a=[1,2,3,4,5,6]   b=[1,2,3]   >>>list (zip(a,b))     [(1,1),(2,2),(3,3)]Python学习(学习视频b站小甲鱼) Python 第74张    #成对打包

 

 

 

 20:26:49 2020-02-12

 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄