序
本笔记的作用只是记录,而不是讲解,故有些和其他编程语言重复的知识没有写
本笔记适合在开发python
时,用作提示开发者的工具书,若想要研究某个知识点,可以在这里找到关键词,再到其他资料中查找
print 函数
# 这是一个示例 Python 脚本。
# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。
#
# 主题:print 输出函数
#
def print_hi(name): # 自定义函数
# 在下面的代码行中使用断点来调试脚本。
print(f'Hi, {name}') # 按 Ctrl+F8 切换断点。
# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__': # 主函数入口
# 操作文件
fp = open('../output/test.txt', 'a+') # 打开文件(若文件不存在,则自动创建文件)
print('helloWorld', file=fp) # 写文件
fp.close() # 关闭文件
# 不换行输出
print('hello', 'world', 123)
# 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助
转义字符与原字符
#
# 主题:转义字符与原字符
#
if __name__ == '__main__':
# 转义字符
print('hello\nworld') # \n 换行。n -> newline
print('hello\tworld') # \t 制表符。一般一个 \t 占4个空格
# 这里字母 o 与 \t 一起占4个空格
# 表明 \t 可以根据情况调整格式
print('ok\rhello') # \r 回车符
print('ok\bhello') # \b 退格符
print('http:\\\\www.baidu.com') # \\ 输出字符 \
print('老师说:\"同学们好!\"') # \" 输出字符 "
# 转义字符失能(原字符)
print(r'老师说:\"同学们好!\"') # 字符串之前加 r 或 R
二进制与字符编码
#
# 主题:二进制与字符编码
#
if __name__ == '__main__':
# 字符编码
print(chr(0B100111001011000)) # 0b\0B 表示后面是二进制数
# chr 函数可以将二进制对应的字符转换出来
print(ord('乘')) # ord 函数将字符转换为十进制
识别字与保留字
#
# 主题:识别符和保留字
#
# 保留字
import keyword
print(keyword.kwlist) # 输出保留字
# 标识符
'''
由字母、数字、下划线组成
不能以数字开头
不能是保留字
严格区分大小写
'''
变量
#
# 主题:变量
#
if __name__ == '__main__':
num = 12 # num 指向 12 变量所在地址
print(num) # 12 变量的值
print(id(num)) # 12 变量的地址
print(type(num)) # 12 变量的数据类型
数据类型
#
# 主题:数据类型
#
if __name__ == '__main__':
'''
int 整数
float 浮点数
bool 布尔 值为 Ture 或 False
str 字符串
'''
整数
#
# 主题:整数
#
if __name__ == '__main__':
'''
十进制 2
二进制 0b0010
八进制 0o0002
十六进制 0x0002
'''
浮点类型
#
# 主题:浮点类型
#
from decimal import Decimal # 导入 decimal 模块
if __name__ == '__main__':
# 浮点数的存储和计算不精确,则可以通过模块 decimal 解决
print(Decimal('1.1') + Decimal('2.29'))
布尔类型
#
# 主题:布尔类型
#
if __name__ == '__main__':
print(True + 1) # True 表示真,运算时相当于 1
print(False + 1)# False 表示假,运算时相当于 0
字符串类型
#
# 主题:字符串类型
#
if __name__ == '__main__':
print('我正在学python')
print("我正在学python")
print('''我正在学python''')
print("""我正在学python""")
print('''我正在学
python''') # 三引号可以换行输出
类型转换
#
# 主题:类型转换
# coding: utf-8 规定文件编码格式
#
if __name__ == '__main__':
# str 函数将 int 和 float 转换为 string
age = 20
state = True
score = 89.9
print(str(age) + '岁')
print(str(state) + '人')
print(str(score) + '分')
print('\n')
# int 函数将 string 和 float 转换为 int
str = '123'
print(int(str))
print(int(score))
print(int(True))
print('\n')
# float 函数将 int 和 string 转换为 float
print(float(age))
print(float(str))
print(float('123.4'))
print(float(True))
input 函数
#
# 主题:input 函数
# coding: utf-8
#
if __name__ == '__main__':
# 输出 input 函数获取到的数据
myData = input('输入数据:')
print(type(myData)) # 输出为 <class 'str'>
# 说明 input 函数的输出结果的类型为 str
# input 函数获取的数据参加运算
num1 = input('输入第一个加数:') # 输入 2
num2 = input('输入第二个加数:') # 输入 3
print(type(num1), type(num2))
print(num1 + num2) # 输出 23 ,即为 num1 与 num2 的字符串组合
num3 = int(input('输入第一个加数:')) # 输入 2
num4 = int(input('输入第二个加数:')) # 输入 3
print(num3 + num4) # 输出 5
运算符
#
# 主题:运算符
#
if __name__ == '__main__':
'''********* start:算术运算符 *********'''
# 算术运算符:标准算术运算符、取余运算符、幂运算符
# 标准算术运算符
print(1 + 1) # 输出 2
print(2 - 1) # 输出 1
print(1 * 2) # 输出 2
print(11 / 2) # 输出 5.5 这是除法运算
print(11 // 2) # 输出 5 这是整除运算
# 取余运算(取模运算)
print(11 % 2) # 输出 1
# 幂运算
print(2 ** 3) # 输出 8
# 正数与负数运算
# 整除运算中,一正一负,则向下取整
print(9 // 4) # 输出 2
print(-9 // -4) # 输出 2
print(9 // -4) # 输出 -3 9 除以 -4 等于 -2.2
print(-9 // 4) # 输出 -3 -9 除以 4 等于 -2.2
# 取余运算中,一正一负需要根据公式计算,
# 即在 被除数 除以 除数 等于 商 余数 中,余数 等于 被除数 - 除数 乘 商
print(9 % -4) # 输出 -3
print(-9 % 4) # 输出 3
'''********* end:算术运算符 *********'''
'''********* start:赋值运算符 *********'''
# 支持链式赋值
a = b = c = 20 # 赋值等号前面的三个变量都指向 20 所在的对象
# 20 所在的对象中,id: 存储地址,type: int,value: 20
# 一个变量可以看做是一个对象,其中有三个成员,即id(标识)、type、value
# 支持系列解包赋值
d, e, f = 20, 30, 40 # 赋值等号左右的个数相等时,才不会报错
# d = 20, e = 30, f = 40
# d 指向 20 所在的对象,e 指向 30 所在的对象,其他同理
# 系列解包赋值在交换两个变量的值的应用
num1, num2 = 10, 20
print('交换数值前:', num1, num2)
num1, num2 = num2, num1
print('交换数值后:', num1, num2)
'''********* end:赋值运算符 *********'''
'''********* start:比较运算符 *********'''
a, b = 10, 20
print('a < b ? ->', a > b) # 输出 a < b ? -> False
# 表明比较运算符所在的表达式的结果是 bool 类型
# 判断值相等
print('a = b? ->', a == b) # 输出 False
# 判断标识相等
print(id( a)) # 输出 140733991081280
print(id( b)) # 输出 140733991081600
print(a is b) # 输出 False
# is 的用法:
# 若 a 与 b 的标识相等,即 a 与 b 指向同一个对象,则输出 Ture;反之,输出 False
print(a is not b) # 输出 Ture
# not 是布尔运算符
# is not 的用法与 is 的用法相反
'''********* end:比较运算符 *********'''
'''********* start:布尔运算符 *********'''
a, b = 1, 2
print(a == 1 and b == 2) # and 且
print(a == 1 or b == 1) # or 或
print(not a == 1) # not 非
# 与其他语法搭配时,比较符合英语语法,如is not,not in
str = 'HelloWorld'
print('h' in str) # 输出 False
print('H' in str) # 输出 True
print('w' not in str) # 输出 True
'''********* end:布尔运算符 *********'''
'''********* start:位运算符 **********'''
# 位运算将相关数据转换为二进制,再计算
# 按位与 & :对应数位都是 1,结果对应的数位才为 1,否则为 0
print(4 & 8) # 输出 0
# 按位或 |:对应数位都是 0,结果对应的数位才为 0,否则为 1
print(4 | 8) # 输出 12
# 左移位 <<:高位溢出舍弃,低位补 0
print(4 << 1) # 输出 8
# 左移一位相当于十进制乘 2
# 右移位 >>:低位溢出舍弃,高位补 0
print(4 >> 1) # 输出 2
# 右移一位相当于十进制除以 2
'''********* end:位运算符 **********'''
运算符优先级
沿着箭头的方向,优先级从高到低