当前位置 博文首页 > AI19970205的博客:Python基础知识点六万字总结,爆肝一周熬夜完
大家好,我是辣条。
今天给大家带来Python基础知识点的总结,不夸张的说我一周才写完,这才是第一弹,如果大家喜欢记得三连呦,我会火速更新下一弹,争取把这个系列做完,希望得到大家的支持。
目录
注释
变量
输出
输入
转换数据类型
运算符
条件语句
?循环
字符串
列表
元组
字典
集合
公共操作
推导式
函数一
函数二
函数三
文件操作
面向对象基础
面向对象-继承
面向对象-其他?
异常
模块和包
包
注释的分类
单行: # 注释内容
,快捷键ctrl+/
多行:""" 注释内容 """
或 ''' 注释内容 '''
解释器不执行注释内容
注释分为两类:==单行注释== 和 ==多行注释==。
单行注释
只能注释一行内容,语法如下:
# 注释内容
多行注释
可以注释多行内容,一般用在注释一段代码的情况, 语法如下:
"""
第一行注释
第二行注释
第三行注释
"""
?
'''
注释1
注释2
注释3
'''
快捷键: ==ctrl + /==
变量就是一个存储数据的的时候当前数据所在的内存地址的名字而已。
标识符命名规则是Python中定义各种名字的时候的统一规范,具体如下:
由数字、字母、下划线组成
不能数字开头
不能使用内置关键字
严格区分大小写
见名知义。
大驼峰:即每个单词首字母都大写,例如:MyName
。
小驼峰:第二个(含)以后的单词首字母大写,例如:myName
。
下划线:例如:my_name
。
检测数据类型的方法:
type()
a = 1
print(type(a)) ?# <class 'int'> -- 整型
?
b = 1.1
print(type(b)) ?# <class 'float'> -- 浮点型
?
c = True
print(type(c)) ?# <class 'bool'> -- 布尔型
?
d = '12345'
print(type(d)) ?# <class 'str'> -- 字符串
?
e = [10, 20, 30]
print(type(e)) ?# <class 'list'> -- 列表
?
f = (10, 20, 30)
print(type(f)) ?# <class 'tuple'> -- 元组
?
h = {10, 20, 30}
print(type(h)) ?# <class 'set'> -- 集合
?
g = {'name': 'TOM', 'age': 20}
print(type(g)) ?# <class 'dict'> -- 字典
作用:程序输出内容给用户
print('hello Python')
?
age = 19
print(age)
?
# 需求:输出“今年我的年龄是19岁”
格式符号 | 转换 |
---|---|
==%s== | 字符串 |
==%d== | 有符号的十进制整数 |
==%f== | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写ox) |
%X | 十六进制整数(大写OX) |
%e | 科学计数法(小写'e') |
%E | 科学计数法(大写'E') |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
\n
:换行。
\t
:制表符,一个tab键(4个空格)的距离。
print('输出的内容', end="\n")
在Python中,print(), 默认自带
end="\n"
这个换行结束符,所以导致每两个
在Python中,程序接收用户输入的数据的功能即是输入。
input("提示信息")
当程序执行到input
,等待用户输入,输入完成之后才继续向下执行。
在Python中,input
接收用户输入后,一般存储到变量,方便使用。
在Python中,input
会把接收到的任意用户输入的数据都当做字符串处理。
函数 | 说明 |
---|---|
==int(x [,base ])== | 将x转换为一个整数 |
==float(x )== | 将x转换为一个浮点数 |
complex(real [,imag ]) | 创建一个复数,real为实部,imag为虚部 |
==str(x )== | 将对象 x 转换为字符串 |
repr(x ) | 将对象 x 转换为表达式字符串 |
==eval(str )== | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
==tuple(s )== | 将序列 s 转换为一个元组 |
==list(s )== | 将序列 s 转换为一个列表 |
chr(x ) | 将一个整数转换为一个Unicode字符 |
ord(x ) | 将一个字符转换为它的ASCII整数值 |
hex(x ) | 将一个整数转换为一个十六进制字符串 |
oct(x ) | 将一个整数转换为一个八进制字符串 |
bin(x ) | 将一个整数转换为一个二进制字符串 |
?转换数据类型常用的函数
int()
float()
str()
list()
tuple()
eval()
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 输出结果为 2 |
- | 减 | 1-1 输出结果为 0 |
* | 乘 | 2 * 2 输出结果为 4 |
/ | 除 | 10 / 2 输出结果为 5 |
// | 整除 | 9 // 4 输出结果为2 |
% | 取余 | 9 % 4 输出结果为 1 |
** | 指数 | 2 ** 4 输出结果为 16,即 2 * 2 * 2 * 2 |
() | 小括号 | 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9 |
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值 | 将= 右侧的结果赋值给等号左侧的变量 |
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | c += a 等价于 c = c + a |
-= | 减法赋值运算符 | c -= a 等价于 c = c- a |
*= | 乘法赋值运算符 | c *= a 等价于 c = c * a |
/= | 除法赋值运算符 | c /= a 等价于 c = c / a |
//= | 整除赋值运算符 | c //= a 等价于 c = c // a |
%= | 取余赋值运算符 | c %= a 等价于 c = c % a |
**= | 幂赋值运算符 | c ** = a 等价于 c = c ** a |
运算符 | 描述 | 实例 |
---|---|---|
== | 判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True |
!= | 不等于 。如果两个操作数的结果不相等,则条件为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True如a=1,b=3,则(a != b) 为 True |
> | 运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a > b) 为 True |
< | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False |
>= | 运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False如a=3,b=3,则(a >= b) 为 True |
<= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=3,b=3,则(a <= b) 为 True |
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
假设一个场景:
其实这里所谓的判断就是条件语句,即条件成立执行某些代码,条件不成立则不执行这些代码。
if 条件:
? ?条件成立执行的代码1
? ?条件成立执行的代码2
? ......
作用:条件成立执行if下方的代码; 条件不成立执行else下方的代码。
if 条件:
? ?条件成立执行的代码1
? ?条件成立执行的代码2
? ......
else:
? ?条件不成立执行的代码1
? ?条件不成立执行的代码2
? ......
age = int(input('请输入您的年龄:'))
if age < 18:
? ?print(f'您的年龄是{age},童工一枚')
elif (age >= 18) and (age <= 60):
? ?print(f'您的年龄是{age},合法工龄')
elif age > 60:
? ?print(f'您的年龄是{age},可以退休')
拓展:
age >= 18 and age <= 60
可以化简为18 <= age <= 60
。
if 条件1:
条件1成立执行的代码
? ?条件1成立执行的代码
? ?
? ?if 条件2:
? 条件2成立执行的代码
? ? ? ?条件2成立执行的代码
?
需求分析:
参与游戏的角色
玩家
手动出拳
电脑
随机出拳
判断输赢
玩家获胜
玩家 | 电脑 |
---|---|
石头 | 剪刀 |
剪刀 | 布 |
布 | 石头 |
平局
玩家出拳 和 电脑出拳相同
电脑获胜
随机做法:
导出random模块
random.randint(开始,结束)
"""
提示:0-石头,1-剪刀,2-布
1. 出拳
玩家输入出拳
电脑随机出拳
?
2. 判断输赢
玩家获胜
平局
电脑获胜
"""
?
# 导入random模块
import random
?
# 计算电脑出拳的随机数字
computer = random.randint(0, 2)
print(computer)
?
player = int(input('请出拳:0-石头,1-剪刀,2-布:'))
?
# 玩家胜利 p0:c1 或 p1:c2 或 p2:c0
if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
? ?print('玩家获胜')
?
# 平局:玩家 == 电脑
elif player == computer:
? ?print('平局')
else:
? ?print('电脑获胜')
三目运算符也叫三元运算符。
语法如下:
值1 if 条件 else 值2
快速体验:
a = 1
b = 2
?
c = a if a > b else b
print(c)
循环的作用:让代码更高效的重复执行。
在Python中,循环分为while
和for
两种,最终实现效果相同。
while 条件:
? ?条件成立重复执行的代码1
? ?条件成立重复执行的代码2
? ......
计算1-100累加和
分析:1-100的累加和,即1 + 2 + 3 + 4 +….,即前两个数字的相加结果 + 下一个数字( 前一个数字 + 1)。
i = 1
result = 0
while i <= 100:
? ?result += i
? ?i += 1
?
# 输出5050
print(result)
注意:为了验证程序的准确性,可以先改小数值,验证结果正确后,再改成1-100做累加。
计算1-100偶数累加和
分析:1-100的偶数和,即 2 + 4 + 6 + 8....,得到偶数的方法如下:
偶数即是和2取余结果为0的数字,可以加入条件语句判断是否为偶数,为偶数则累加
初始值为0 / 2 , 计数器每次累加2
# 方法一:条件判断和2取余数为0则累加计算
i = 1
result = 0
while i <= 100:
? ?if i % 2 == 0:
? ? ? ?result += i
? ?i += 1
?
# 输出2550
print(result)
# 方法二:计数器控制增量为2
i = 0
result = 0
while i <= 100:
? ?result += i
? ?i += 2
?
# 输出2550
print(result)
故事梗概:有天女朋友又生气了,惩罚:说3遍“媳妇儿, 我错了”,这个程序是不是循环即可?但如果女朋友说:还要刷今天晚饭的碗,这个程序怎么书写?
while 条件:
? ?print('媳妇儿, 我错了')
print('刷晚饭的碗')
但如果女朋友还是生气,把这套惩罚要连续3天都执行,有如何书写程序?
while 条件:
while 条件:
print('媳妇儿, 我错了')
print('刷晚饭的碗')
while 条件1:
条件1成立执行的代码
......
while 条件2:
条件2成立执行的代码
......
总结:所谓while循环嵌套,就是一个while里面嵌套一个while的写法,每个while和之前的基础语法是相同的。
语法
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
......
循环可以和else配合使用,else下方缩进的代码指的是==当循环正常结束之后要执行的代码==。
需求:女朋友生气了,要惩罚:连续说5遍“媳妇儿,我错了”,如果道歉正常完毕女朋友就原谅我了,这个程序怎么写?
i = 1
while i <= 5:
print('媳妇儿,我错了')
i += 1
print('媳妇儿原谅我了...')
思考: 这个print是不是没有循环也能执行?
while 条件:
条件成立重复执行的代码
else:
循环正常结束之后要执行的代码
i = 1
while i <= 5:
print('媳妇儿,我错了')
i += 1
else:
print('媳妇原谅我了,真开心,哈哈哈哈')
for 临时变量 in 序列:
重复执行的代码
...
else:
循环正常结束之后要执行的代码
所谓else指的是循环正常结束之后要执行的代码,即如果是break终止循环的情况,else下方缩进的代码将不执行。
str1 = 'itheima'
for i in str1:
print(i)
else:
print('循环正常结束之后执行的代码')
循环的作用:控制代码重复执行
while语法
while 条件:
条件成立重复执行的代码1
条件成立重复执行的代码2
......
while循环嵌套语法
while 条件1:
条件1成立执行的代码
......
while 条件2:
条件2成立执行的代码
......
for循环语法
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
......
break退出整个循环
continue退出本次循环,继续执行下一次重复执行的代码
else
while和for都可以配合else使用
else下方缩进的代码含义:当循环正常结束后执行的代码
break终止循环不会执行else下方缩进的代码
continue退出循环的方式执行else下方缩进的代码
字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。
a = 'hello world'
b = "abcdefg"
print(type(a))
print(type(b))
注意:控制台显示结果为
<class 'str'>
, 即数据类型为str(字符串)。
print('hello world')
?
name = 'Tom'
print('我的名字是%s' % name)
print(f'我的名字是{name}')
在Python中,使用input()
接收用户输入。
代码
name = input('请输入您的名字:') print(f'您输入的名字是{name}') print(type(name)) ? password = input('请输入您的密码:') print(f'您输入的密码是{password}') print(type(password))
切片
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
语法
序列[开始位置下标:结束位置下标:步长]
注意
不包含结束位置下标对应的数据, 正负整数均可;
步长是选取间隔,正负整数均可,默认步长为1。
体验
name = "abcdefg" ? print(name[2:5:1]) ?# cde print(name[2:5]) ?# cde print(name[:5]) ?# abcde print(name[1:]) ?# bcdefg print(name[:]) ?# abcdefg print(name[::2]) ?# aceg print(name[:-1]) ?# abcdef, 负1表示倒数第一个数据 print(name[-4:-1]) ?# def print(name[::-1]) ?# gfedcba
修改
所谓修改字符串,指的就是通过函数的形式修改字符串中的数据。
replace():替换
语法
字符串序列.replace(旧子串, 新子串, 替换次数)
注意:替换次数如果查出子串出现次数,则替换次数为该子串出现次数。
快速体验
mystr = "hello world and itcast and itheima and Python" ? # 结果:hello world he itcast he itheima he Python print(mystr.replace('and', 'he')) # 结果:hello world he itcast he itheima he Python print(mystr.replace('and', 'he', 10)) # 结果:hello world and itcast and itheima and Python print(mystr)
注意:数据按照是否能直接修改分为==可变类型==和==不可变类型==两种。字符串类型的数据修改的时候不能改变原有字符串,属于不能直接修改数据的类型即是不可变类型。
split():按照指定字符分割字符串。
语法
字符串序列.split(分割字符, num)
注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。
快速体验
mystr = "hello world and itcast and itheima and Python" ? # 结果:['hello world ', ' itcast ', ' itheima ', ' Python'] print(mystr.split('and')) # 结果:['hello world ', ' itcast ', ' itheima and Python'] print(mystr.split('and', 2)) # 结果:['hello', 'world', 'and', 'itcast', 'and', 'itheima', 'and', 'Python'] print(mystr.split(' ')) # 结果:['hello', 'world', 'and itcast and itheima and Python'] print(mystr.split(' ', 2))
注意:如果分割字符是原有字符串中的子串,分割后则丢失该子串。
join():用一个字符或子串合并字符串,即是将多个字符串合并为一个新的字符串。
语法
字符或子串.join(多字符串组成的序列)
快速体验
list1 = ['chuan', 'zhi', 'bo', 'ke'] t1 = ('aa', 'b', 'cc', 'ddd') # 结果:chuan_zhi_bo_ke print('_'.join(list1)) # 结果:aa...b...cc...ddd print('...'.join(t1))
capitalize():将字符串第一个字符转换成大写。
mystr = "hello world and itcast and itheima and Python" ? # 结果:Hello world and itcast and itheima and python print(mystr.capitalize())
注意:capitalize()函数转换后,只字符串第一个字符大写,其他的字符全都小写。
title():将字符串每个单词首字母转换成大写。
mystr = "hello world and itcast and itheima and Python" ? # 结果:Hello World And Itcast And Itheima And Python print(mystr.title())
lower():将字符串中大写转小写。
mystr = "hello world and itcast and itheima and Python" ? # 结果:hello world and itcast and itheima and python print(mystr.lower())
upper():将字符串中小写转大写。
mystr = "hello world and itcast and itheima and Python" ? # 结果:HELLO WORLD AND ITCAST AND ITHEIMA AND PYTHON print(mystr.upper())
判断
所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False。
startswith():检查字符串是否是以指定子串开头,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。
语法
字符串序列.startswith(子串, 开始位置下标, 结束位置下标)
快速体验
mystr = "hello world and itcast and itheima and Python ? " ? # 结果:True print(mystr.startswith('hello')) ? # 结果False print(mystr.startswith('hello', 5, 20))
endswith()::检查字符串是否是以指定子串结尾,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。
语法
字符串序列.endswith(子串, 开始位置下标, 结束位置下标)
快速体验
mystr = "hello world and itcast and itheima and Python" ? # 结果:True print(mystr.endswith('Python')) ? # 结果:False print(mystr.endswith('python')) ? # 结果:False print(mystr.endswith('Python', 2, 20))
isalpha():如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False。
mystr1 = 'hello' mystr2 = 'hello12345' ? # 结果:True print(mystr1.isalpha()) ? # 结果:False print(mystr2.isalpha())
isdigit():如果字符串只包含数字则返回 True 否则返回 False。
mystr1 = 'aaa12345' mystr2 = '12345' ? # 结果: False print(mystr1.isdigit()) ? # 结果:False print(mystr2.isdigit())
isalnum():如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False。
mystr1 = 'aaa12345' mystr2 = '12345-' ? # 结果:True print(mystr1.isalnum()) ? # 结果:False print(mystr2.isalnum())
下一篇:没有了
最新 更多<<
AI19970205的博客:Python基础知识点六万字总结,爆肝一周熬夜完 你的脸皮比作业还厚 - 搞笑网名女生奇葩越怪越好 我要青春不要痘 - 搞笑网名女生简单气质排行榜 我的智商开外挂 - 个性网精选搞笑网名男女通用简单款 退休的龙叔:学Python该看什么书?所有方向的精华好书推荐,18年 从此节操是路人 - 可爱有趣的搞笑昵称系列超拽 CSDN资讯:第一门编程语言的选择无关紧要? 可爱又迷人的反派角色 - 搞笑的网名笑死人女生最新版设计 极客日报:极客日报:腾讯宣布捐赠1亿元驰援河南;苹果回应iPhon 我不高冷我高寒 - 有趣的女生搞笑个性网名大全 你的脑袋要发芽 - 搞笑的可爱网名女生专属最新设计 mengyidan的专栏:Julia Computing获得 2400 万美元融资,前 Sno 姑娘不哭睫毛膏很贵i - 非主流搞笑个性网名受欢迎的 你很撩人 - 重口味的搞笑网名男生精选2016 CSDN资讯:自由软件不够吸引人? 你过来我打死你 - 英雄联盟网名大全搞笑版2016最新 CSDN资讯:“我想再当一次 CEO,所以我离开了 IBM。” 总有傻屌挑衅本尊i - 搞笑的网名笑死人2016最新版设计 给儿子聘个妈 - 搞笑网名2016逗比超拽 CSDN资讯:中国 47% 程序员使用 Java、薪资中值达 21000 美元, 非主流的高贵汉子 - 个性男生搞笑游戏网名 cpongo21111:2021-04-26 女生污一点才可爱 - 污一点的网名男女通用2016最新版 没有了咸蛋的超人 - 搞笑逗比风个性网名大全精选 lzh_2_4的博客:各种笔记 咚吧啦咚呀咚吧啦 - 超有个性的搞笑内涵网名 HPC_ZY:(阅读笔记)核磁灌注中AIF的研究进展 HPC_ZY:(阅读笔记)脑中线偏移测量及其自动化技术与算法综述 千杯不醉万杯不倒 - 霸气男生个性搞笑网名精选 HPC_ZY:(MATLAB)一维信号峰值检测findpeaks