1. 内置基本数据类型
python中已经集成好了一些数据(无需导入),数据类型有很多:基本数据类型、容器类型、对象类型。
基本数据类型是“不可再拆的最小单元”,容器类型是用来装基本类型的。
(1)数值型:数字
整数:任意大小,不像其他语言对整数有取值范围的约束的,Python中没有约束,也支持其他数制的整数(二进制,八进制,十六进制,默认是十进制)
浮点数(小数):同时也存在科学计数法,由于所有数值最终都由二进制存储的,所以小数存在一定的精度问题。
(2)布尔型(bool)
只有两个值True和False,表示真和假,一般用在比较、逻辑判断时(if while);从本质上而言,布尔类型其实就是数字0和1来表示。
print(True + False) # 1(3)字符串类型(str)
python中字符串就是一组若干字符组成的文本信息。Python中不存在字符数据类型的(char 单个字符)。
- 双引号
- 单引号
- 三引号
转义字符\:
方向 1:普通字符 → 特殊控制功能,把原本没有特殊功能的普通字母,转换成不可见的控制字符,实现换行、制表等格式功能。\n,\t,\r,\a
方向 2:特殊功能字符 → 普通内容字符,取消它的特殊语法功能,引号是字符串边界
(4)空值类型(None)
None空,理解为空集φ,主要在引用数据类型中使用,尤其涉及到对象方面的问题。
(5)复数类型(complex)
实部+虚部
print(1 + 1j) print(2 - 3j) print((1 + 1j) * (2 - 3j)) # 2 - 3j + 2j + 32.变量与数据类型
(1)变量的定义与赋值
变量:就是用来临时存储某些数据使用的,在使用的过程中,我们可以修改变量中的数据
变量名 = 数据- 将数据赋值给变量(变量名)
- Python中对变量的数据类型没有严格的限制,想存啥就存啥
- 如果变量第一次赋值 则为创建变量;否则为修改变量
(2)标识符命名规则与规范
在任何编程语言中,但凡是自定义的名称都叫做标识符
命名规则:
- 只能由数字、字母、下划线组成,其中数字不能开头。(汉字可以作为标识符)
- 严格区分大小写
- 不能使用关键字和内置函数名称作为标识符
命名规范:
- 变量名称和函数名称的命名:蛇形命名法,所有单词小写,多个单词之间用下划线分割,my_name
- 类名称:大驼峰命名法,所有单词首字母大写,单词与单词之间不分割,MyName
- 常量名称:所有单词大写,单词与单词之间用下划线分割,MY_NAME
(3)关键字和内置函数
关键字:就是Python中已经定义好的一些特殊单词,本身就已经由其特殊的作用和含义。
# 打印Python中所有的关键字 import keyword print(keyword.kwlist) # 输出的结果 ['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']内置函数:就是Python中预先定义号并直接集成在解释器中的函数(小工具),无需导入其他的模块直接调用即可。内置函数是 Python 预先提供好的功能对象,默认会用max、print这类变量名绑定它们。如果给这些变量名赋了其他值,这个名字就不再指向原来的内置函数了,表现出来像是 “这个功能失效了”,但函数本身并没有被破坏或改变。
print(123) # 把print的功能赋值给了name # name同时具有了输出的功能 # 就可以像使用print一样进行输出了 name = print name(123) # 函数名称 -> 变量 存的是某一个函数的功能而已 print = 3 name(print + 4)print(max(1,2,3,100)) # 最大值函数 min = 10 max = 10 # 变成了一个整数print(dir(__builtins__)) # 输出结果 ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip'](4)查看数据类型
type() 内置函数用于查看变量存储的数据的类型
(5) 变量交换与多重赋值
# 多重赋值 a = b = c = 1 print(a + b + c) a, b, c = 1, 2, 3 print(a + b + c) # a, b, c = 1, 2, 3, 4 # ValueError: too many values to unpack (expected 3) # 变量交换 a = 10 b = 60 c = 80 a, b, c = c, a, b print(a) print(b) print(c)3.基本数据类型转换
(1)隐式转换(自动转换)
就是小的类型和大的类型进行计算时,结果会默认为大类型,主要出现在数值运算上
a = 1 # 整数 b = 3.14 # 小数 c = a + b # 小数 print(type(c))(2)显示转换
一般都是使用内置函数来去操作的
- 将其他类型转整数:int内置函数,默认以10进制转换,也可以指定进制数(2~36,0默认10)
num = 3.9123 # 将小数转整数 print(int(num)) # 截断小数部分 只保留整数部分 # 将数字字符串转整数 s = "123" print(int(s) + 1) # 将字符串中的整数解析出来 为一个整数 s = "123ah" # 默认以十进制进行解析 # print(int(s)) # ValueError: invalid literal for int() with base 10: '123a' # 因为a不属于十进制 #print(int(s, 12)) # 12 以12(0~9 a~b)进制进行解析数字 # 10*12**0 + 3*12**1 + 2*12**2 + 1*12**3 print(int(s, 18)) # 18 以18(0~9 a~h)进制进行解析数字 # print(int(s, 60)) # ValueError: int() base must be >= 2 and <= 36, or 0默认十进制 s = "21jk" print(int(s, 21)) # 最小进制为21 # s = "迪丽热巴18岁" # print(int(s)) # 报错- 将其他类型转小数
num = 10 print(float(num)) s = "3.123123123abc" # 只能以十进制解析小数 print(float(s) + 1) # ValueError: could not convert string to float: '3.123123123abc'- 将其他类型转为布尔类型
# 将数值类型转布尔类型:只有0为False 其他均为True print(bool(999)) print(bool(3.14)) print(bool(-123)) print(bool(0)) # 将字符串类型转布尔类型:只有空串为False,其他均为True print(bool("Hello")) print(bool("a")) print(bool("")) print(bool(None)) # None一律为False- 将其他类型转字符串:加str
num1 = 10 num2 = 3.14 num3 = True num4 = None print(str(num1) + str(num2) + str(num3) + str(num4))