相关链接
- 目录
- Mac M1 Python环境搭建
- Python3.x入门 P1 基本语法、注释、标识符、变量、数据类型input
- Python3.x入门 P2 【基础】运算符
- Python3.x入门 P3 基础流程语句循环结构
- Python3.x入门 P4 可变序列(列表)list、字典dict、集合set)
- Python3.x入门 P5 不可变序列(元组)tuple、字符串str)
- Python3.x入门 P6 字符串格式化四种方式(手动,%-formatting、str.format()、f-String)
- Python3.x入门 P7 【函数】
基本语法总结
Python可参考开发手册:编码前破碎 、Python 风格指南、Python 编码规范(Google)
print() # 打印 print('-' * 10) # 打印分割线 ---------- ''' print("hello", end="\t") print("world不换行") # hello world不换行 ''' chr(i) # 返回整数 i 所对应的 Unicode 字符。它的作用和ord()相反 ord(c) # 返回字符c 所对应的 Unicode 值。它的作用和chr()相反 id() # 返回内存地址 type() # 返回变量类型 len() # 不能用于获取对象的长度int,float,bool类型 # 异常捕获 try: print(我叫张三) except Exception as e: print(e) finally: pass # 类型转换 from decimal import Decimal # 一般放在文件的第一部分 Decimal('1.1') # 转为Decimal类型可以解决浮点计算精度问题 str() # 转为字符串str int() # 转为整形int,参数只能是数字(字符串格式的数字也可以) float() # 转为浮点型float,参数只能是数字(字符串格式的数字也可以) bool() # 转为布尔型bool - 0代表False,其它数字代表True # 生成随机数 import random print(random.randrange(0, 100, 1))
一、 转义符
print("hello\rworld") # 回车
print("hello\nworld") # 换行
print("hello\tworld") # 制表符
print("hello\rworld\rpython") # 回撤 python (world覆盖hello,python覆盖world)
print("hello\bworld") # 退格 hellworld
''' print 每次默认换行 end="\t" 表示不换行 '''
print("hello", end="\t")
print("world不换行") # hello world不换行
二、chr()与ord()的字符编码转换
print(chr(0b100111001011000)) # 乘 (0b表示二进制)默认unicode编码
print(ord("乘")) # 20056 (十进制)-> 100111001011000(unicode编码)
三、注释
name = "groupies";
# 单行注释
''' 多行注释1 '''
""" 多行注释2 """
四、标识符(变量)
: 1. python中的标识符是区分大小写的 2. 定义变量时,= 左右应各保留一个空格 3. 变量名可以包括、、,但是 4. 系统不能做变量名使用 5. 除了下划线之个,其它符号不能做为变量名使用 6. 如果需要由 或 组成时,可以按照以下方式命名 a. 每个单词都是用小写字母 b. 单词与单词之间使用_连接 c. 例如:first_name、last_name、qq_number、qq_password
4.1 关键字、函数和方法
:是Python内置的、具有特殊意义的标识符,也叫保留字
import keyword
# 方式一
print(keyword.kwlist)
# 方式二
print(help("keywords"))
""" 保留字 ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] """
''' 标识符 字母、数字、下划线_ 不能以数字开头 不能是保留字 严格区分大小写 '''
:封装了独立功能,可以直接调用
函数名(参数)
和函数类似,同样是封装了独立的功能 需要通过来调用,表示对这个对象要做的操作
对象.方法名(参数)
五、变量
1.在Python中定义变量可以省略(在其他很多高级语言中都需要) 2. 数据类型可以分为和 3. a. 整形int b. 浮点型float c. 布尔型bool:真=True=非0数;假=False=0 d. 复数型complex:主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题 4. a. 列表list:可变序列 b. 字典dict:可变序列 c. 集合set:可变序列 d. 元组tuple:不可变序列 e. 字符串str:不可变序列 5.在Python中,所有都支持以下特点 a 都是一个序列sequence
,也可以理解为 b. 取值[] c. 遍历for in d. 计算长度、最大/最小值、比较、删除 e. +和* f. 切片
5.1 变量的定义
name = 'groupies' # 变量赋值 字符串-单引号
name = "groupies" # 变量赋值 字符串-双引号
name = '''groupies''' # 变量赋值 字符串-三引号
job: str = '研发' # 变量赋值(指定类型)
age: int = 16; # 变量复制 (int类型)
print('姓名:', name, ';\t工作:', job, ';\t年龄:', age, ";") # 姓名: groupies ; 工作: 开发 ; 年龄: 16 ;
print(id(name)) # 4377113712 内存地址
print(type(name)) # <class 'str'> 变量类型
'''批量定义变量'''
name, age, money = '张三', 18, 2000
print(name, age, money) # 张三 18 2000
'''反射获取所有变量、表达式、函数'''
print(locals())
''' {'__name__': '__main__', '__doc__': '', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x10280a2e0>, '__spec__': None, '__annotations__': {'job': <class 'str'>, 'age': <class 'int'>}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/Users/d/workspace/python/pybase/src/com/groupies/part01基础/05.变量的定义.py', '__cached__': None, 'name': '张三', 'job': '研发', 'age': 18, 'money': 2000} '''
六、数据类型
""" 整形 int -> 14 浮点型 float -> 3.14 布尔型 bool -> true/false 字符串 str -> '张三' # 十六进制 : 0x # 八进制 : 0o # 二进制 : 0b """
6_1 整型int
""" # 十六进制 : 0x # 八进制 : 0o # 二进制 : 0b 基本数: 十进制 : \d 二进制 : [12] 八进制 : [1-7] 十六进制 : [\dABCDEF] """
n1 = 90
n2 = 60
print(n1, type(n1)) # 90 <class 'int'>
print(n2, type(n2)) # 60 <class 'int'>
print("十六进制", 0x1EAF) # 十六进制 7855
print("十进制", 118) # 十进制 118
print("八进制", 0o176) # 八进制 126
print("二进制", 0b10101111) # 二进制 175
6_2 浮点型float
""" 浮点数整数部分和小数部分组成 浮点数存储不准确:使用浮点数计算时,可能出现小数位数不确定的情况 解决方案:导入decimal模块 from decimal import Decimal Decimal(1'1)+Decimal('2.1') """
from decimal import Decimal # 一般放在文件首部
a = 3.14159
print(a, type(a)) # 3.14159 <class 'float'>
""" 浮点数存储不准确:使用浮点数计算时,可能出现小数位数不确定的情况 """
print(1.1 + 2.2) # 3.3000000000000003
print(1.1 + 2.1) # 3.2
""" 解决方案:导入decimal """
print(Decimal('1.1') + Decimal('2.2')) # 3.3
6_3 布尔型bool
""" True = 非0数 False = 0 """
# True 非空对象、或非0数字
print(True)
print(bool(1))
print(bool("abc"))
print(bool([1,2,3]))
# False 空对象、或0、0.0
print(bool(0))
print(bool(0.0))
print(bool(None))
print(bool(''))
print(bool([])) # 空列表
print(bool(list())) # 空列表
print(bool(())) # 空元组
print(bool({
})) # 空字典
print(bool(dict())) # 空字典
print(bool(set())) # 空集合
print(int(True)) # 1
print(True + 1) # 2
print(False + 1) # 1
6_4 字符串str
str1 = '张三'
str2 = "张三"
str3 = '''张三'''
str4 = """张 三""" # 三引号可以多行输入字符串,其他方式不可以
print(str1, type(str1)) # 张三 <class 'str'>
print(str2, type(str2)) # 张三 <class 'str'>
print(str3, type(str3)) # 张三 <class 'str'>
print(str4, type(str4))
""" 张 三 <class 'str'> """
七、类型转换
""" str() 将其他类型转为字符串 1.也可以用引号转换 exp: str(123) '123' int() 其他->整形 1.字符串 -> 整形 (字符串的内容必须是整数,否则不能进行转换) 2.浮点型 -> 整形 (抹零取整) exp: int('123') int(9.8) float() 其他->浮点型 1.字符串->浮点型 (x) 2.整形->浮点 (末尾.0) exp: float('9.9') float(9) bool() 其他->布尔型 1. 0 -> 布尔 (False) 2. 其他 -> 布尔(True) #包括字符串,浮点,int各种类型 exp: bool('0') -> False bool(0) -> True """
name = '张三'
age = 20
print(type(name), type(age)) # <class 'str'> <class 'int'>
# 当str类型与int类型连接时,报错,解决方案:类型转换
try:
print('我叫' + name + '今年' + age + '岁') # can only concatenate str (not "int") to str
except Exception as e:
print(e)
print('我叫' + name + '今年' + str(age) + '岁')
print('---------str()将其他类型转成str类型----')
a = 10
b = 198.8
c = False
print(type(a), type(b), type(c))
# 10 198.8 False <class 'str'> <class 'str'> <class 'str'>
print(str(a), str(b), str(c), type(str(a)), type(str(b)), type(str(c)))
print('---------int()将其他类型转成int类型----')
s1 = '128'
f1 = 98.7
s2 = '76.77' # x :小数字符串不可以转
ff = True
s3 = 'hello' # x
print(type(s1), type(f1), type(s2), type(ff), type(s3))
print(int(s1), type(int(s1))) # 128 <class 'int'>
print(int(f1), type(int(f1))) # 98 <class 'int'>
""" invalid literal for int() with base 10: '76.77' 字符串(除了'\d')类型小数不能转int """
try:
print(int(s2), type(int(s2)))
except Exception as e:
print(e)
print(int(ff), type(int(ff))) # 1 <class 'int'>
""" invalid literal for int() with base 10: 'hello' 字符串(除了'\d')不能转int """
try:
print(int(s3), type(int(s3)))
except Exception as e:
print(e)
print('---------float()将其他类型转成float类型----')
s1 = '128.98'
s2 = '76'
ff = True
s3 = 'hello' # x
i = 98
print(type(s1), type(s2), type(ff), type(s3), type(i))
print(float(s1), type(float(s1)))
print(float(s2), type(float(s2)))
print(float(ff), type(float(ff)))
""" could not convert string to float: 'hello' 字符串(除了'\d+.\d+')类型不能转float """
try:
print(float(s3), type(float(s3)))
except Exception as e:
print(e)
print(float(i), type(float(i)))
八、键盘录入input()
8.1 intput()录入
""" 作用:接收来自用户的输入 返回值类型:输入值的类型为str 值的存储:使用=对输入值进行存储 """
inStr = input();
print(inStr)
8.2 input()求和
a = input("请输入第一个加数:") # 5
b = input("请输入第二个加数:") # 10
print(a + b) # 510,默认字符串拼接
print(int(a) + int(b)) # 15
九、命名规范
1.所谓"内部(Internal)"表示仅模块内可用,或者在类内是保护或私有的 2.用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含) 3.用双下划线开头(__)的实例变量或方法表示类内私有 4.将相关的类和顶级函数放在同一模块里,不像Java,没必要限制一个类一个模块 5.对类名使用大写字母开头的单词(如CapWords,即Pascal风格),但是模块名应该用小写加下划线的方式(如local_with_under.py)。尽管已经有很多现存的模块使用类似于CapWords.py这样的命名,但现在已经不鼓励这样做,因为如果模块名碰巧和类名一致,这会让人困扰 6.驼峰命名法(大驼峰LocalUser、小驼峰localUser)、蛇形命名法(local_user)
22/06/27
M