Post's cover

参考 B 站 IT 私塾的视频 Python 爬虫编程基础 5 天速成(2021 全新合集)Python 入门+数据分析

H2注释

  • 单行注释
python# 我是注释,可以在里写一些功能说明之类的哦 print('hello world')
  • 多行注释
python''' 我是多行注释, 可以写很多很多行的功能说明 哈哈哈。。。 ''' print('hello world')

如果直接在程序中用到了中文,比如:print('你好'),如果直接运行输出,程序会出错

解决的办法为:在程序的开头写入#coding=utf-8

注意:在 python 的语法规范中推荐使用# -*- coding:utf-8 -*-

H2输出

H3普通输出

print('hello world')

H3格式化输出

pythonage = 21 print("我今年%d岁"% age)

在程序中,看到了%这样的操作符,这就是 Python 中格式化输出。

再来一个例子:

pythonage = 21 name = "HarrisWong" print("我的姓名是%s,年龄是%d"%(name,age))

H4常用的格式符号

格式符号转换
%c字符
%s通过 str() 字符串转换来格式化
%i有符号十进制整数
%d有符号十进制整数
%u无符号十进制整数
%o八进制整数
%x十六进制整数(小写字母)
%X十六进制整数(大写字母)
%e索引符号(小写'e')
%E索引符号(大写'E')
%f浮点实数
%g%f 和%e 的简写
%G%f 和%E 的简写

H3换行输出

在输出的时候,如果有\n那么,此时\n后的内容会在另外一行显示

pythonprint("1234567890-------") # 会在一行显示 print("1234567890\n-------") # 一行显示1234567890,另一行-------

H2输入

先看一个例子:

pythonpassword = input("请输入密码:") print('您输入的密码是:', password)
  • input()的小括号中放入的是,提示信息,可省略

  • input()在从键盘获取了数据以后,会存放到等号左边的变量中

  • input()函数接受的输入必须是表达式

H2运算符和表达式

H3算术运算符

算术运算符描述
+加 - 两个对象相加
-减 - 得到负数或是一个数减去另一个数
*乘 - 两个数相乘或是返回一个被重复若干次的字符串
/除 - x 除以 y
%取模 - 返回除法的余数
**幂 - 返回 x 的 y 次幂
//取整除 - 向下取接近除数的整数

H3比较运算符

比较运算符描述
==等于 - 比较对象是否相等
!=不等于 - 比较两个对象是否不相等
>大于 - 返回 x 是否大于 y
<小于 - 返回 x 是否小于 y。所有比较运算符返回 1 表示真返回 0 表示假。这分别与特殊的变量 True 和 False 等价
>=大于等于 - 返回 x 是否大于等于 y
<=小于等于 - 返回 x 是否小于等于 y

H3赋值运算符

赋值运算符描述
=简单的赋值运算符
+=加法赋值运算符
-=减法赋值运算符
*=乘法赋值运算符
/=除法赋值运算符
%=取模赋值运算符
**=幂赋值运算符
//=取整除赋值运算符

H2判断语句和循环语句

H3条件判断语句

H4if

pythonage = 30 if age >= 18: print "我已经成年了"

H4if-else

pythonif True: print ("True") else: print ("False")

如果缩进不一致,会导致运行错误

H4elif

pythonscore = 98 if score>=90 and score<=100: print('本次考试,等级为A') elif score>=80 and score<90: print('本次考试,等级为B') elif score>=70 and score<80: print('本次考试,等级为C') elif score>=60 and score<70: print('本次考试,等级为D') else: #elif可以else一起使用 print('本次考试,等级为E')

H3循环语句

H4for

格式:

pythonfor 临时变量 in 列表或者字符串等: 循环满足条件时执行的代码

例子:

pythonname = 'harris' for x in name: print(x) # h a r r i s

H4while

例子:

pythoni = 0 while i<5: print("当前是第%d次执行循环"%(i+1)) print("i=%d"%i) i+=1

H4break、continue、pass

  • break 语句可以跳出 forwhile 的循环体
  • continue 语句可以跳出当前循环,直接进行下一轮循环
  • pass 是空语句,一般用做占位语句,不做任何事情

H2导入 import

在 python 用 import 或者 from import 来导入相应的模块。

将整个模块(somemodule)导入,格式为:import somemodule

从某个模块中导入某个函数,格式为:from somemodule import somefunction

从某个模块中导入多个函数,格式为:from somemodule import firstfunc, secondfunc, thirdfunc

将某个模块中的全部函数导入,格式为: from somemodule import \*

例子:生成随机数:

  1. 第一行代码引入库:import random #引入随机库
  2. 生成指定范围的随机数:harris = random.randint(0,2) 随机生成 0、1、2 中的一个数字,赋值给变量 harris

H2字符串

H3字符串运算符

前提:a = "Hello", b = "Python"

操作符描述实例
+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果 e
[ : ]截取字符串中的一部分,遵循左闭右开原则a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定字符则返回 True'H' in a 输出结果 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True'M' not in a 输出结果 True

H3字符串的截取和连接

pythonstr='harriswong' print(str) # 输出字符串 print(str[0:-1]) # 输出第一个到倒数第二个的所有字符 print(str[0]) # 输出字符串第一个字符 print(str[2:5]) # 输出从第三个开始到第五个的字符 print(str[2:]) # 输出从第三个开始后的所有字符 print(str * 2) # 输出字符串两次 print(str + '你好') # 连接字符串 print(str[:5]) # 输出第五个字母前的所有字符 print(str[0:7:2]) # [起始:终止:步长] print('hello\npython') # 使用反斜杠(\)+n转义特殊字符 print(r'hello\npython') # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

H3字符串的常见操作

函数描述
len(S)返回 S 字符串长度
str.join(seq)以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
lower()转换字符串中所有大写字符为小写
upper()转换字符串中的小写字母为大写
lstrip()截掉字符串左边的空格或指定字符
rstrip()删除字符串字符串末尾的空格
max(str)返回字符串 str 中最大的字母
min(str)返回字符串 str 中最小的字母
S.format ()"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
"{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
"{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'

H4replace()

str.replace(old, new[, max])

参数:

  • old: 将被替换的子字符串。
  • new: 新字符串,用于替换 old 子字符串。
  • max: 可选字符串, 替换不超过 max 次。

H4split()

str.split(str="", num=string.count(str)).

参数:

  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数。默认为 -1, 即分隔所有。

例子:

pythonstr = "Line1-abcdef \nLine2-abc \nLine4-abcd"; print str.split( ); # 以空格为分隔符,包含 \n print str.split(' ', 1 ); # 以空格为分隔符,分隔成两个 #结果: #['Line1-abcdef', 'Line2-abc', 'Line4-abcd'] #['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

H2列表 List

H3循环遍历

pythonnamesList = ['harris','wendy','sharon'] for name in namesList: print(name)

H3函数

函数描述
len(list)列表元素个数
max(list)返回列表元素最大值
min(list)返回列表元素最小值
list(tuple)将元组转换为列表

H3方法

方法描述
list.append(obj)在列表末尾添加obj
list.count(obj)统计 obj 在列表中出现的次数
list.index(obj)查找列表中值为 obj 第一个匹配项的索引位置
list.insert(index, obj)将 obj插入列表下标为 index
list.pop(index)移除下标为 index 的元素,并返回该元素的值
list.remove(obj)移除列表中值为 obj 的第一个匹配项
list.reverse()反转列表中元素
list.sort(key = None, reverse= False)对原列表进行排序(见下)
list.clear()清空列表
list.copy()复制列表

sort() 方法:key 可以指定一个排序方法;reverse = True 降序, reverse = False 升序(默认升序)。

案例:(按照第二个元素排序并输出)

pythondef takeSecond(List): return List[1] List = [(2,2), (4,1), (1,3)] List.sort(key=takeSecond, reverse=True) print('降序列表:', List)

输出结果:降序列表:[(1,3), (2,2), (4,1)]

H2元组 Tuple

  • 元组 tuple 和列表 list 类似,不同在于元组 tuple 元素不能修改。tuple 写在小括号里。

  • 元组的元素不可变,但可以包含可变对象,如 list。

注意:定义只有 1 个元素的 tuple,必须加逗号,否则被当为整型 int。如:t = (1,)

H3函数

函数描述
len(tuple)计算元组元素个数
max(tuple)返回元组中元素最大值
min(tuple)返回元组中元素最小值
tuple(list)将列表转换为元组

H2字典 Dictionary

H3根据键访问值

pythondict = {'Name': 'hassan', 'Age': 20, 'Class': 'three'} print(dict['Age']) # 获取年龄 # print(dict['Sex']) # 获取不存在的key,会发生异常 print(dict.get('Sex')) # 获取不存在的key,获取到None的空内容,不会出现异常

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用 get 方法,还可以设置默认值

pythonage = dict.get('Sex') # 'Sex'键不存在,所以age为None age = dict.get('Sex', '男') # 若dict中不存在'Sex'这个键,就返回默认值'男'

H3删除元素

pythondict = {'Name': 'hassan', 'Age': 20, 'Class': 'three'} del dict['Name'] # 根据键“Name”来删除 dict.clear() # 清空字典 del dict # 删除字典

H3循环遍历

pythonfor key in dict: print(key, dict[key]) for key, val in dict.items(): print(key, val)

H3常用操作

前提:dict = {'Name': 'hassan', 'Age': 20, 'Class': 'three'}

常用操作描述
print(dict['harris'])通过 key 来访问元素并打印,不存在会抛出异常
print(dict.get('harris'))通过 get 方法来访问元素,不存在返回 None,不抛出异常
dict.keys()获取所有 key
dict.values()获取所有 value
dict['Age'] = 21新增键值对或修改 val
del dict['harris']删除元素
dict.pop('harris')将元素弹出
'harris' in dict判断元素是否存在
dict.clear()清除字典内的元素
len()获取字典长度
max()获取最大的 key
min()获取最小的 key

H2集合 Set

  • 集合 set 和字典 dict 类似,也是一组 key 的集合,但不存储 value,由于 key 不能重复,所以在 set 中没有重复的 key。

  • set 是无序的,重复元素在 set 中自动被过滤。

H3常用操作

常用操作描述
for i in s1:
print(i)
遍历集合
s1.update(s2)更新集合
s1.add(5)向集合添加新元素
s1.remove(5)移除集合中的元素
val = s1.pop()弹出元素
s1.clear()清除元素
del s1删除元素
len()获取集合长度
max()获取最大的元素
min()获取最小的元素
set()其它类型对象转换成集合

H2函数

H3定义和调用函数

pythondef 函数名(): 代码 函数名()

例子:

python# 定义一个函数,能够完成打印信息的功能 def printInfo(): print '人生苦短,我用Python' printInfo();

H3带参函数

例子:

pythondef add(a, b): c = a + b print c add(8, 9) # 17

H3带返回值函数

例子:

pythondef add(a, b): return a+b print(add(8, 9)) # 17

H4返回多个值

例子(求商和余数):

pythondef divid(a, b): shang = a//b yushu = a%b return shang, yushu sh, yu = divid(5, 2) print(sh, yu)

H2匿名函数

H3语法

pythonlambda [arg1 [,arg2, ..argn]]:expression

例子:

pythonsum = lambda arg1, arg2: arg1 + arg2 # 调用sum函数 print ("相加后的值为:", sum( 10, 20 )) # 相加后的值为:30

H3lambda 匿名函数使用 if 条件语句

例子:

python# 随意定义俩变量 wife = "unknown" husband = "harris" # 随意定义方法 fun = lambda num: wife if num % 2 == 0 else husband # 调用 print(fun(0)) # "unknown"

解析:当 num 的值是偶数时显示 wife,否则显示 husband

H2文件

文件,就是把一些数据存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。

H3文件打开

使用 open 函数,可以打开一个已经存在的文件,或者创建一个新文件

格式:open(文件名,访问模式)

模板:f = open('test.txt', 'w')

说明:

访问模式说明
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

H3文件关闭

格式:close()

模板:

python# 新建一个文件,文件名为:test.txt f = open('test.txt', 'w') # 关闭这个文件 f.close()

H3文件写入

使用 write()可以完成向文件写入数据

例子:

pythonf = open('test.txt', 'w') f.write('hello hassan, i am here!') f.close()

注意:如果文件不存在那么创建,如果存在那么就先清空,然后写入数据

H3文件读取

H4read

使用 read(num)可以从文件中读取数据,num 表示要从文件中读取的数据的长度(单位是字节),如果没有传入 num,那么就表示读取文件中所有的数据.

例子:

pythonf = open('test.txt', 'r') content = f.read(5) print(content) print("-------------") content = f.read() print(content) f.close()
  • 如果 open 是打开一个文件,那么可以不用写打开的模式,即只写 open('test.txt')

  • 如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的

H4readlines

就像 read 没有参数时一样,readlines 可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。

python#coding=utf-8 f = open('test.txt', 'r') content = f.readlines() print(type(content)) i=1 for temp in content: print("%d:%s"%(i, temp)) i+=1 f.close()

H4readline

一行一行地读取

python#coding=utf-8 f = open('test.txt', 'r') content = f.readline() print("1:%s"%content) content = f.readline() print("2:%s"%content) f.close()

H3文件重命名

os 模块中的 rename()可以完成对文件的重命名操作

格式:rename(需要修改的文件名, 新的文件名)

pythonimport os os.rename("毕业论文.txt", "毕业论文-最终版.txt")

H3文件删除

os 模块中的 remove()可以完成对文件的删除操作

格式:remove(待删除的文件名)

pythonimport os os.remove("毕业论文.txt")

H3创建文件夹

pythonimport os os.mkdir("张三")

H3获取当前目录

pythonimport os os.getcwd()

H3改变默认目录

pythonimport os os.chdir("../")

H3获取目录列表

pythonimport os os.listdir("./")

H3删除文件夹

pythonimport os os.rmdir("张三")

H2错误与异常

TODO

H2常见问题集锦

pip install 第三方库 下载模块速度慢,或者不成功

shellpip --default-timeout=100 install <库名> -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

除了豆瓣,也可以换成下面的国内镜像网站。

清华:https://pypi.tuna.tsinghua.edu.cn/simple

阿里云:http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中科技大学:http://pypi.hustunique.com/

山东理工大学:http://pypi.sdutlinux.org/

☕欲知后事如何,且听下回分解🍵

Prev

Next

Related Posts