2021寒假python自学体系整理
加油加油,今天不学习,以后就没机会学习了,趁着最后一个寒假,多学一点东西,跟着B站的视频,开始慢慢学,顺带用博客的方式记录和整理。
基础知识(1.21)
注释
- #coding:gbk,注意默认是utf-8
- 多行注释,一对三引号之间的代码称为多行注释
input()函数,默认是str类型
question = input('请输入指令:')
print(question)
a = int(input())
b = int(input())
print(a + b)
print()函数
- 数字不加引号
print(3)
- 含有运算符的表达式
print(3+1)
- 字符串要加引号,单双三均可
print('helloworld')
- 将数据输出到文件中
fp = open('D:/Demo.txt', 'a+')
print('helloworld', file = fp)
fp.close()
- 换行输出\n,或者不换行输出,逗号分隔
转义字符(反斜杠+想要实现的转义功能首字母)
-
\n
- newline的首字母,实现换行
print('hello\nworld')
-
\t
- tab的首字母,实现制表位,一个制表位4个字符
print('hello\tworld')
print('helloooo\tworld')
-
\r
- return的首字母,实现回车覆盖
print('hello\rworld')
-
\b
- backspace的首字母,实现退格
print('hello\bworld')
- 反斜杠\
print('http:\\\\www.baidu.com')
- 单引号’
print('他说:\'你好\'')
-
双引号同理
-
原字符,字符串前加r或R
- 取消转义字符的作用
print(r'hello\nworld')
- 最后一个字符不能是一个反斜杠
二进制与编码
-
1byte = 8bit
-
1KB = 1024byte
-
1MB = 1024KB
-
……
-
ASCII
-
GB2312
-
GBK
-
GB18030
-
Unicode
- UTF-8
-
-
-
-
print(chr(0b100111001011000))
print(ord('乘'))
标识符和保留字
- 保留字:
import keyword
print(keyword.kwlist)
- 标识符规则:
字母数字下划线
不能以数字开头
不能是保留字
严格区分大小写
变量
name = 'Alice'
print(name)
print('标识',id(name))
print('类型',type(name))
print('值',name)
在前者的代码基础上继续输入以下,就会造成内存垃圾
name = 'Bob'
print(name)
print('标识',id(name))
print('类型',type(name))
print('值',name)
数据类型
-
整型
-
int
- 默认十进制
- 二进制以0b开头
- 八进制以0o开头
- 十六进制以0x开头
-
-
浮点型
-
float
- 有时候会出现存储不精确地问题
-
print(1.1+2.2)#3.3000000000000003
print(1.1+2.1)#3.2
- 解决方案:导入decimal模块
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))#3.3
-
布尔
-
bool
- True = 1,False = 0
-
print(True + 1)#2
print(False + 1)#1
-
字符串(不可变的字符序列)
-
str
- 单引号和双引号定义的字符串必须在一行
三引号定义的字符串可以分布在连续的多行
- 单引号和双引号定义的字符串必须在一行
-
str1 = 'hello'
str2 = ''hello''
str3 = '''hello
world'''
str4 = ''''''hello
world''''''
-
数据类型的转换
- int(),转字符串的时候,字符串必须为整数数字串
转float的时候直接去尾
float(),转字符串的时候,字符串必须为数字串
转整型和bool的时候加.0
str()
- int(),转字符串的时候,字符串必须为整数数字串
name = 'Alice'
age = 8
print('我是' + name + ',今年' + str(age) + ‘岁’)
运算符
算数运算符
+
-
*
/
//
#一正一负向下取整
print(9//-4) #-3
#%取余
#一正一负:被除数-除数*商
print(9%-4) #-3
#**幂
-
赋值运算符(运算顺序从右往左)
-
链式赋值
- a = b = c = 20,标识是一样的
-
参数赋值
- +=,-=,*=,/=,//=,%=
-
系列解包赋值
-
a,b,c = 10,20,30
应用:交换两个变量的值不需要中间变量
a,b = b,a
- 比较运算符(结果是bool类型)
>
<
>=
<=
==
!=
is(比较标识)
is not
-
布尔运算符
- and(与)
- or(或)
- not(对操作数取反)
- in
- not in
-
位运算符
-
&
- 位与
-
|
- 位或
-
<<
- 左移运算符,高位溢出舍弃,低位补0
- 乘了2
>>
- 右移运算符,低位溢出舍弃,高位补0
- 除了2
- 优先级
- 算术运算符(先乘除,后加减,有幂先算幂)>位运算(移位>与>或)>比较运算>布尔运算>赋值运算