2021Python学习笔记
print函数
数字
(如520,98.5)输出时不用引号
如print(520)和print(98.5)
也可以用引号 print("520")
字符串
必须加引号
如print("hello world")
含有运算符的表达式
像$1+3$
其中1和3是操作数,加号是运算符,含有两者叫做表达式
如print(3+1) 那么它就输出4
输出到本地()
如open("E:/日你妈.txt","a+")
其中
a如果在E:/目录下没有日你妈.txt这个文件就创建一个,如果有就在原来基础上追加
(读写的方式创建文件。没同名文件创建,有的话在文件内容后面追加)
现在我们输入open("E:/日你妈.txt","a+")
然后把它们存入变量F中
相当于F=open("E:/日你妈.txt","a+")
再把内容写入日你妈.txt中
输入print("haha",file=F)
其中file :文件路径
最后还可以把这个变量关掉
输入F.close()
1 | F = open("E:/日你妈.txt","a+") |
不换行输出
如print("hello","world","python")
一些转义字符
\n 换行(n指的是newline)
\r 回车
\t 水平制表符
\b 退格
其中 \ 是转义功能的首字母
输入print("hello\nworld")
那么它就会输出helloworld
输入print("hello\tworld")
那么它就会输出
hello world
就是一组四个空格的位置
输入print("hello\rworld")
那么它就会输出
world
直接把hello覆盖掉了
在输入
print("https:\\www.baidu.com")时
它会只输出
https:\www.baidu.com这时候要多加一个或两个反斜杠
因为它把第二个反斜杠看成了转义字符首字母,就自动隐藏了
原字符
不希望字符串中的转义字符起作用,就使用原字符
假如我们输入print("hello\nworld")
那么它就会输出
hello
world
那么我们想要让\n不起作用,让它输出hello\nworld
就在"hello\nworld"前加R或r,即print(R"hello\nworld")或print(r"hello\nworld")
- 注意:原字符最后一个字符不能是反斜杠
如
print(r"hello\nworld\")那么它就会报错了
要非要输出hello\nworld\的话,
输入
print(r"hello\nworld\")也就是在后面加一个空格
总之就是想办法不要把反斜杠和后面的引号接触在一起
因为反斜杠会把引号转成原字符造成格式错误
二进制与字符编码
什么叫做二进制和字符编码
一个位置可以写上0或1
设有a个位置,那就有$$2^a$$个位置
8个位置($2^8$=256)称为1字节(即8bit=1bite)
1024bite=1KB(千字节)
1024KB=1MB(兆字节)
1024MB=1GB(吉字节)
1024GB=1TB(太字节)
各种字符编码

chr函数
乘十六进制是4e58,那么它的二进制是0100111001011000
- 输入
print(chr()) - 再把
0100111001011000丢进去,即print(chr(0100111001011000))但发现它会报错,因为它是二进制,而它默认的是十进制
这时候再在
0100111001011000前输入个0b即
print(chr(0b0100111001011000))它就会输出
乘
ord函数
- 输入
print(ord(”“)) - 再把
乘丢进去,即print(ord("乘")),那么它就会输出2005620056是十进制,它默认的是十进制
- 注意:chr函数括号内不用加引号,ord函括号内要加引号
- 不管是几进制,转到计算机中都是二进制,因为计算机只识别二进制
- chr函数不仅能搞二进制,还能搞八进制等各种进制,如
print(chr(20056))
保留字
在Python中不可以给对象命名的单词,
如你在给新的Python文件命名时或设置变量时不可以使用
怎么查询保留字
输入
1 | import keyword |
那么它就会输出所有的保留字
标识符
在给对象起的名字叫做标识符
规则如下
- 你可以使用字母、数字、下划线
- 不能以数字开头
- 不能是保留字
- 我是严格区分大小写的
变量
变量是内存中一个带标签的盒子

把马丽亚放进变量里
输入name="马丽亚"
其中name即变量名(标识符),可在标识符原则下随便取
"马丽亚"是字符串

变量的定义和使用
变量由标识、类型和值三部分组成
标识:表示对象所存储的内存地址,使用内置函数
id(obj)来获取类型:表示的是对象的数据类型,使用内置函数
type(obj)来获取值:表示对象所存储的具体数据(即刚才的
马丽亚), 使用print(obj)可以将值进行打印输出
如何获取标识、类型和值
先了解一点
id是标识type是类型- 值的话就直接输出变量,即
print(name),输入print(value(name))会报错
先将马丽亚存入name中,输入name="马丽亚"
输入print(id(name))
输出的就是这个变量在内存中的地址
输入print(type(name))
输出的就是这个变量的数据类型,即<class 'str'>,那么这个变量数据类型是str
输入print(name)
输出的就是这个变量中的值
1 | name="马丽亚" |
变量的多次赋值
当我们输入
1 | name="马丽亚" |
时
再输入print(name) 它就会输出楚溜冰
那马丽亚就不会被使用,将会被视为内存垃圾,
Python的垃圾回收机制会对这个垃圾进行一个回收

常见的数据类型
- int 整数类型 如98(不带小数点和引号的)
- float 浮点数类型 如3.14159、9.8、5.6、33.9
- bool 布尔类型 只能取两个值,这两个值就是
true或者false,用来表示真或者假 - str 字符串类型 只要加上引号的就称为字符串类型,如”hello world”
整数类型(integer,简写为int)
英文为integer, 简写为int, 可以表示正数、负数和零,但绝对不能有小数点和引号
整数的不同进制表示方式
- 十进制→默认的进制
- 二进制→以
0b开头- 八进制→以
0o开头- 十六进制→
0x开头
- 把随意一些整数类型存入变量当中,如输入
n1=98n2=56n3=22(设置多个变量) - 输入
print(type(n1),type(n2),type(n3)),输出的都是int,即整数类型
1 | n1=98 |
将二进制、十进制、八进制、十六进制转换成十进制
输入print(118)(十进制)
那么它就会输出118(十进制)
输入print(0b1010110)(二进制)
那么它就输出86(十进制)
输入print(0o55555)(八进制)
那么它就会输出23405(十进制)
输入print(0x4e58)(十六进制)
那么它就会输出20056(十进制)
1 | print(118) |
浮点数类型
包括整数和小数部分,如3.141596535、33.56、2.33
输入
1
2 a=3.14
print(type(a))时
它输出的是
<class 'float'>,即浮点数类型
浮点数存储不精确性
使用浮点数进行计算时,可能会出现小数位数不确定的情况
正常状态下我们输入print(1.1+1.1)
那么它就会输出2.2
那当我们输入print(1.1+2.2)时,理论上是3.3
但它输出3.3000000000000003
这说明个别浮点数不能精确存储
任何语言中浮点数都不能精确存储
解决方案
导入模块decimal再去计算
1
2 from decimal import Decimal
print(Decimal("1.1")+Decimal("2.2"))结果输出的就是
3.3
布尔类型(bool,全称Boolean)
用来表示真或假的值
True 表示真,False 表示假
- True表示整数1
- False表示整数0
输入
1 | b=True |
它就会输出<class 'bool'> <class 'bool'>,即布尔类型
转成整数计算
如输入
1
2 print(True+1)
print(False+1)那么它就会输出
1
2 2
1就相当于把
True和False分别当成1和2看
字符串类型
- 字符串又被称为不可变的字符序列
- 可以使用单引号、双引号或三引号来定义
- 单引号和双引号定义的字符串必须在一行
- 三引号定义的字符串可以分布在连续的多行
1 | #单引号 |
其中三引号像这样输入那么它输出的就是
1 | hello |
三引号有两种召唤方式
按三下双引号,即
""""""按三下单引号,即
''''''例如
1
2
3
4
5#输入
print("""hello
world""")
print('''hello
world''')1
2
3
4
5#输出
hello
world
hello
world
数据类型转换
为什么需要数据类型转换?
将不同数据类型的数据拼接在一起
举个例子
我想让它输出我叫 楚溜冰 我今年 20 岁了
直接输入
1 | name="楚溜冰" |
还有一种方法,通过加号(连接符)连接(把逗号换成了加号)
1 | name="楚溜冰" |
但是它会报错(TypeError: can only concatenate str (not “int”) to str)
意思是str和int格式不能连接在一起(name和age)
解决方案如下
将int类型通过
str()转换成str类型print("我叫"+name+"我今年"+str(age)+"岁了")也就是在
age前加个str,再用括号括起来输出的内容为
我叫楚溜冰我今年20岁了
用连接符和用逗号的区别是前者没有空格,后者有空格
数据类型转换函数
str()将其它数据类型转换成str,即字符串
int()将其它数据类型转换成int,即整数
float()将其它数据类型转换成float,即浮点数

计算
➕ 加法
➖ 减法
✳ 乘法
/ 除法
** 幂运算(例如2✳✳3=2的3次方=2✖2✖2=8)
% 1.取余 (一正一负要公式),例如9%4=1
2.余数=被除数-除数*商,例如9%(-4)=-3 9-(-4)✳(-3)=-3
// 整除(例如9➗4=2.25,那么9整除4就是2,抹掉了小数点和小数后面的数)
整除:一正一负往下取整。例如9➗-4得出来是-2.25,整除后是-3,如下图


