拼命Girl_Python笔记(三):Python基本数据类型

1.基本数据类型

1.1标准数据类型
Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)
a、不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
b、可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
1.2Number

在Python数值分成了三种:整数、浮点数(小数)、复数(int、float、bool、complex(复数))
例如:

a,b,c,d = 20,5.5,True,5+4j
print(type(a),type(b),type(c),type(d))

函数:

type(a)				# 判断数据类型
isinstance(a,int)	# 判断数据是否属于某类型
del var1,var2		# 删除数据的引用

区别:

(1)type()不会认为子类是一种父类类型
(2)isinstance()会认为子类是一种父类类型
	例如:
			class A:
				pass
			class B(A):
				pass
			print(type(A()) == A)
			print(type(B()) == A)
			print(isinstance(B(),A))
			print(isinstance(B(),A))

进制:

二进制:使用0b开头	例如:0b1010
八进制:使用0o开头	例如:0o555
十六进制:0x开头		例如:0x52A74(大小写都OK)
注意:python中没有数字的大小限制,可以使用任意大的数字
	 python可以保证整数运算的精确,但是浮点数运算时可能会得到一个不精确的结果(计算机中无法用二进制小数的)
扩展:小数的二进制的计算方法
	 a、分母为奇数,分子*2,大于分母取1,小于取0
	 b、分母为偶数,分母/2,直到分母为偶数时再按照奇数的方式计算
	 C、当分子和分母相同时,取整
	 d、二进制小数转十进制,先转换成分数,再计算

注意:

(1)在Python2中是没有布尔型的,它用数字0表示False,用1表示True。到Python3中,把True和False定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
		print(True+1)		# 2
(2)复数的实部和虚部都是浮点型的
(3)数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
(4)在混合计算时,Python会把整型转换成为浮点数。
(5)比较长的数据显示方法,例如 money = 999999999    money = 999_999_999
(6)Python中
(7)j定义变量时,前面不能有数字,只要有数字全部识别成复数

扩展:

扩展:
import math
(1) 数学函数
函数					返回值 ( 描述 )
abs(x)				返回数字的绝对值,如abs(-10) 返回 10
ceil(x)				返回数字的上入整数,如math.ceil(4.1) 返回 5
(x>y)-(x<y) 		如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x)				返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x)				返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x)			返回数字的下舍整数,如math.floor(4.9)返回 4
log(x)				如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)			返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...)		返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)		返回给定参数的最小值,参数可以为序列。
modf(x)				返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y)			x**y 运算后的值。
round(x [,n])		返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x)				返回数字x的平方根。
(2) 随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
函数					描述
choice(seq)			从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step])	从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random()			随机生成下一个实数,它在[0,1)范围内。
seed([x])			改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst)		将序列的所有元素随机排序
uniform(x, y)		随机生成下一个实数,它在[x,y]范围内。
(3) 三角函数
函数					描述
acos(x)				返回x的反余弦弧度值。
asin(x)				返回x的反正弦弧度值。
atan(x)				返回x的反正切弧度值。
atan2(y, x)			返回给定的 X 及 Y 坐标值的反正切值。
cos(x)				返回x的弧度的余弦值。
hypot(x, y)			返回欧几里德范数 sqrt(x*x + y*y)。
sin(x)				返回的x弧度的正弦值。
tan(x)				返回x弧度的正切值。
degrees(x)			将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x)			将角度转换为弧度
(4) 数学常量
常量					描述
pi					数学常量 pi(圆周率,一般以π来表示)
e					数学常量 e,e即自然常数(自然常数)。
1.2 String

Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。下标从0开始
加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。

# 字符串(str)
# 字符串用来表示一段文本信息,字符串是程序中使用的最多的数据类型
# 在Python中字符串需要使用引号引起来

s = 'hello'
# s = abc # 字符串必须使用引号引起来,不使用不是字符串
# 引号可以是双引号,也可以是单引号,但是注意不要混着用
s = 'hello'
s = "hello"
# s = 'hello" 引号不能混合使用  SyntaxError: EOL while scanning string literal

# 相同的引号之间不能嵌套
# s = "子曰:"学而时习之,乐呵乐呵!""
s = '子曰:"学而时习之,乐呵乐呵!"'

# 长字符串
# 单引号和双引号不能跨行使用
s = '锄禾日当午,\
汗滴禾下土,\
谁知盘中餐,\
粒粒皆辛苦'

# 使用三重引号来表示一个长字符串 ''' """
# 三重引号可以换行,并且会保留字符串中的格式

s = '''锄禾日当午,
汗滴禾下土,
谁知盘中餐,
粒粒皆辛苦'''

# 转义字符
# 可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
# 例子:
#   \' 表示'
#   \" 表示"
#   \t 表示制表符
#   \n 表示换行符
#   \\ 表示反斜杠
#   \uxxxx 表示Unicode编码
s = "子曰:\"学而时习之,\\\\n乐呵乐呵!\""

s = '\u2250'
print(s)
1.2.1 格式化字符串

(1)字符串之间也可以进行加法运算,如果将两个字符串进行相加,则会自动将两个字符串拼接为一个

a = 'abc' + 'haha' + '哈哈'
# a = 123 
# 字符串不能和其他的类型进行加法运算,如果做了会出现异常 TypeError: must be str, not int
# print("a = "+a) # 这种写法在Python中不常见
a = 123
# print('a =',a)

(2)在创建字符串时,可以在字符串中指定占位符

# %s 在字符串中表示任意字符
# %f 浮点数占位符
# %d 整数占位符
b = 'Hello %s'%'孙悟空'
b = 'hello %s 你好 %s'%('tom','孙悟空')
b = 'hello %3.5s'%'abcdefg' # %3.5s字符串的长度限制在3-5之间
b = 'hello %s'%123.456
b = 'hello %.2f'%123.456
b = 'hello %d'%123.95
b = '呵呵'

# print('a = %s'%a)

(3)格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串

# 在格式化字符串中可以直接嵌入变量
c = f'hello {a} {b}'
print(f'a = {a}')
1.2.2 复制字符串
# 创建一个变量来保存你的名字
name = '孙悟空'

# 使用四种方式来输出,欢迎 xxx 光临
# 拼串
print('欢迎 '+name+' 光临!')
# 多个参数
print('欢迎',name,'光临!')
# 占位符
print('欢迎 %s 光临!'%name)
# 格式化字符串
print(f'欢迎 {name} 光临!')

# 字符串的复制(将字符串和数字相乘)
a = 'abc'
# * 在语言中表示乘法
# 如果将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回
a = a * 20

print(a)
1.2.3 字符串截取(左闭右开)

变量[头下标:尾下标:正倒序)

-6 -5 -4 -3 -2 -1
0 1 2 3 4 5
±–±--±–±--±–±--+
| a | b | c | d | e | f |
±–±--±–±--±–±--+
eg:

str = 'hello world'
l = str[0:1:1]
print(l)
1.2.4 字符串打印

Python 使用反斜杠()转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串

print('Ru\noob')
Ru
oob
print(r'Ru\noob')
Ru\noob
1.2.5 字符串获取
print(str[0])

注意:

1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
2、字符串可以用+运算符连接在一起,用*运算符重复。
3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
4、Python中的字符串不能改变。
    str = 'abcdef'
	str[0] = 's'	# 报错
5、Python 没有单独的字符类型,一个字符就是长度为1的字符串。
1.3List

List(列表)是Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号[]之间、用逗号分隔开的元素列表。和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
定义:

list = [0,1,2,3,'c']
list[0]			# 0
len(list)		# 长度5
list[0:3]		# [0,1,2]

注意

1、List写在方括号之间,元素用逗号隔开。
2、和字符串一样,list可以被索引和切片。
3、List可以使用+操作符进行拼接。
4、List中的元素是可以改变的。
5、不支持与或非运算
1.4 Tuple

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
定义:

t = (0,1,2,3,'c')
t[0]			# 0
len(list)		# 长度5
t[0:3]			# (0,1,2)
t[0] = 2		# 报错

注意

1、与字符串一样,元组的元素不能修改。虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
		list = [0,2,1,3]
		t = (0,1,2,3,list)
		t[0] = 1			# 报错
		t[4][0] = 1
		print(t[4])			# ok
2、元组也可以被索引和切片,方法一样。
3、注意构造包含0或1个元素的元组的特殊语法规则。
		tup1 = ()			# 空元组
		tup2 = (20,)		# 一个元素,需要在元素后添加逗号
4、元组也可以使用 + 或 * 操作符进行拼接。
1.5 Set

集合(set)是由一个。合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:

	parame = {value01,value02,...} 或者 set(value)

s = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
		print(s)					# {'Mary', 'Jack', 'Rose', 'Tom', 'Jim'}

s = set('1b1b2b3b2b')		# {'2', '3', '1', 'b'}

set操作:

# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam') 
print(a)
>>> {'b', 'a', 'c', 'r', 'd'}
print(a - b)     # a和b的差集
>>> {'b', 'd', 'r'}
print(a | b)     # a和b的并集
>>> {'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
print(a & b)     # a和b的交集
>>> {'a', 'c'}
print(a ^ b)     # a和b中不同时存在的元素
>>> {'l', 'r', 'z', 'm', 'b', 'd'}
1.6 Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
字典创建:

(1) d = {"a":1,"b":2,"c":3}
(2) d = dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
(3) d = {x:x**2 for x in (2, 4, 6)}
(4) d = dict(Runoob=1, Google=2, Taobao=3)

字典操作:

tinydict = {'name': 'guigu','code':1, 'site': 'www.atguigu.com'}
 
print (dict['name'])			# 输出键为 'name' 的值
print (dict['code'])			# 输出键为 'code' 的值
print (tinydict)				# 输出完整的字典
print (tinydict.keys())			# 输出所有键	dict_keys(['name', 'code', 'site'])
print (tinydict.values())		# 输出所有值 dict_values(['guigu', 1, 'www.atguigu.com'])
1.7 python类型转换
函数                      	描述
int(x [,base])				将x转换为一个整数
float(x)					将x转换到一个浮点数
complex(real [,imag])		创建一个复数
str(x)						将对象 x 转换为字符串
repr(x)						将对象 x 转换为表达式字符串
eval(str)					用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)					将序列 s 转换为一个元组
list(s)						将序列 s 转换为一个列表
set(s)						转换为可变集合
dict(d)						创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)				转换为不可变集合
chr(x)						将一个整数转换为一个字符
ord(x)						将一个字符转换为它的整数值
hex(x)						将一个整数转换为一个十六进制字符串
oct(x)						将一个整数转换为一个八进制字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值