2 基本数据类型
2.1概念:按被定义的性质,表示形式,占据
2.2常量
2.2.1概念:在程序期间,值不会发生变化的量,一般通过人工初始化或键盘输入实现
2.2.2整数(int)
十进制格式:数字,正负号组成,位数任易,python3中可以用下划线对长数据进行分割,方便阅读记忆
八进制:以0o开头或o0开头,后面跟上八进制数字0-7,如0o12
python2中是以0开头
a = 7777
print(oct(a))
0o17141
十六进制:以0x或0X开头,后面跟上十六进制数字(0-9,A-F),如0XFFFF,0X25,0X456
可以使用hex()函数实现十六进制输出
a = 65535
print(hex(a))
0xffff
二进制格式:以0b或0B开头后跟上0或1,逢二进一,如0b1011,调用bin()
a = 127
print(bin(a))
0b1111111
2.2.3浮点数(float)
小数表示法:由符号,数字,小数点组成
科学计数法:又称为指数标识符,由符合,尾数,阶码符号(E或e),阶码数字组成,如xey
如-2.5e3 -> -2.5*10的三次方
原则:xEy
E后必须为整数 2.5e3.5报错
e前后不能空格
x与y一个不能少
注意:浮点数运算肯出现小数位不确定的情况,如0.1+0.2数学上0.3,python解释器为0.30000000000000004
有误差,尽量避免浮点数的比较,如
if 0.1+0.7 ==0.8:
print('yes')
else:
print('no')
2.2.4布尔类型(bool)
作用:拥有表示真与假,本质为数字类型
组成:True和False
True和False第一个字母大写
意义True表示1 False表示0,可以进行数字运算
2.2.5字符串
本质:python终端字符串是一种序列,其值为串首地址,是一个抽象概念,值不可改变
定界符:‘单引号’“双引号”三引号“”“””“
注意:定界符首尾必须相同
三引号可以使字符串分布多行
2.2.6转义字符
作用:以反斜杠(\)开头的特点字符串序列,表述特殊功能的字符串
常见转义字符
\n 回车换行
\r 回车(输入的置为行首)
\t 制表符,tab键
\b 退格键,光标向左移动一列(不删除)
\f 换页
\\ 输出一个反斜杠
\' 输出一个单引号
\" 输出一个双引号
\000 空
\yyy 以\开头后跟三位八进制
\xyy 以\x开头后跟两位十六进制
print('a\bi\'lh\bavi\be\'\\\byou\'\n')
i'lave'you'
转义字符功能失效:使得转义字符功能失效,原样输出,只需在定界符前加r或R
print(r'c:\windows\new')
c:\windows\new
2.3变量
2.3.1变量名
变量名有称标识符,用于表示变量空间,函数,类等名称
组成:字母,下划线,数字组成,不能以实在开头,name:mod_123
3word(错误)
a.dat(错误)print
注意:变量名字母区分大小写
变量名不能使用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一下划线开头的标识符有特殊意义,一般需要避免使用
单下划线开头,_width,表示不能直接访问的类属性
双下划线开头,__add,类私有成员
双下划线开头结尾__int__()构造函数
python支持汉语变量,不推荐
2.3.2变量定义
格式:变量名=value (=念做赋值,不是等于)
python中不需要申明类型,通过存储的数据动态变化
新的变量通过赋值动作进行开辟内存空间,保存数据,若变量未赋值直接引用会被抛出异常
变量类型是通过赋值动态变化的:
number = 2048
print(type(number))
number = 'china'
print(type(number))
number = 3.14
print(type(number))
<class 'int'>
<class 'str'>
<class 'float'>
2.3.3变量是什么
python中一切数据皆为对象,变量是对象的引用
对象是分配的一块内存空间,拥有特定的值,支持特定的操作,是一种容器
a = b = 1024
print(id(a), id(b))
a=2048
print(id(a), id(b))
a=2,系统执行2步,建立一个对象空间存储数据2,对其贴上标签2进行绑定
a=10,将标签a从存储数据2的对象空间中撕下来,贴到存储10的对象空间中
b=a,表示对象10贴两个标签a和b
变量是一个系统表元素,拥有指向对象的链接空间,可以理解为一种标签或名字或者引用
2.3.4整型变量对象占用字节数
import sys
print(sys.getsizeof(int()))
print(sys.getsizeof(float()))
import sys
a = 0
print('a=0', sys.getsizeof(a))
a = 1
print('a=-1', sys.getsizeof(a))
a = -1
print('a=1', sys.getsizeof(a))
a = 2 ** 30 - 1
print('a=2**30-1', sys.getsizeof(a))
a = 2 ** 30
print('a=2**30', sys.getsizeof(a))
a = 2 ** 60
print('a=2**60', sys.getsizeof(a))
a=2**30-1 28
a=2**30 32
a=2**60 36
python3中不在区分int(普通)和long int(长整型),统称int
python3中int是动态长度,理论支持无线大的数字(不能超出虚拟内存大小)
结论:python3中int型数据0占用24,其他28,每逢2**30加4
2.4运算符与表达式
2.4.1常见运算符优先级(背)
** 幂(最高优先级)
~+ - 取反,正号,负号
*/%// 乘 除 取余 取整数
>> << 右移,左移
& 按位与
^ 按位异或(相同为0,不同为1)
| 按位或
<=<>>= 比较运算符
== != 等于 不等于
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符
= %= /= //= += -= &*= 赋值运算符
, 逗号运算符
2.4.2算术运算符
组成:+ - * / //(取商的整数)**(幂)
除法(/):结果为浮点数,如1/2=>0.5
整除(//):又称地板除,计算出发,返回值不大于除法结果的一个最大整数,余数舍去,如7//2->2
-9//2 ->-5
列:计算一元二次方程的两个实根,a!=0且b**2-4ac>0
import math
a = float(input('请输入二次项系数:'))
b = float(input('请输入一次项系数:'))
c = float(input('请输入常数项:'))
x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)
x2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a)
print('x1=', 'x2=', x2)
- 注意:math.sqrt() 开平方根函数,之前需要导入,input()是输入函数,由于返回值为字符串则需要使用float进行强制类型转换