Python学习笔记2_变量及数据类型
- Python里的数据分为可变数据和不可变数据:
- 可变数据:列表、集合、字典
- 不可变数据:字符串、数字、元组
- 可变数据:修改值,内存地址不会发生变化
- 不可变数据:修改值,内存地址会发生变化
- 使用
id()
函数可以查看变量地址:
s=0
print("变量s的地址为:{}".format(id(s)))
1、数据类型
1)数字类型:整数型(int)、长整型(long)(Python3中已经没有长整型了)、浮点(小数)型(float)、复数型(complex)
2)字符串类型(Str):表示一段字符,使用单引号或双引号包围起来
str="Python"
3)布尔类型(bool):只有两个Ture
和False
a=(1==2) # a的值为False
b=(1<2) # b的值为True
4)列表类型(list)
days=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]
5)字典类型(Dict):
person = {'name':'张三','年龄':'18','身高':'180','体重':'52kg'}
6)元组类型(Tuple):
nums = (1,5,3,9,6)
7)集合类型(set):
x = {1,'good','hello',True}
- 查看数据类型:使用
type()
函数进行扁蕾数据类型的查看
a = 3
print(type(a)) # 输出出 a 的数据类型
print(type(3.14)) # 输出出3.14的数据类型
注:在Python中,变量是没有数据类型的,我们所说的变量的数据类型是指变量所对应的值的数据类型
2、数据类型转换
1)使用int()
转换为整数型
*注:long() 将其他类型转换为长整型;float() 将其他类型转换为浮点型;complex(real [,imag]) 创建一个复数 *
a = '1'
print(int(a))
b = '3.14'
print(int(b,8)) # 将b作为八进制
c = 'abc'
print(int(c,16)) # 将c最为十六进制
# 当字符串超出进制范围就会报错
d = 'abcdefghijklmn'
int(d,16) # k超出16进制所以会报错
2)使用float()
转换为浮点型
a='12.23'
print(float(a))
# 如果字符串不能转换成为有效的浮点型,就会报错
b = 'hello'
print(float(b))
3)使用str()
将其他类型转换为字符串
a = 24
b = str(a)
4)使用bool()
将其他类型转换为布尔值
注:在Python里只有空字符串’'/“”,数字0,空列表[],空字典{},空元组(),空集合set()和空数据None转换为False,其他的都会被转换为True
print(bool(0)) # False
print(bool('')) # False
print(bool({})) # False
print(bool(())) # False
print(bool([])) # False
print(bool(None)) # False
print(bool(set())) # False
5)使用tuple(), ist(), set()
将其他类型转换为可迭代对象
注:可迭代对象有:字符串\列表\字典\元组\集合
t = 'hello'
print(tuple(t)) # ('h', 'e', 'l', 'l', 'o')
print(list(t)) # ['h', 'e', 'l', 'l', 'o']
print(set(t)) # {'h', 'e', 'l', 'l', 'o'}
6)Python里面的数据类型转换相关的函数
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为一个整数 |
long(x [,base] ) | 将x转换为一个长整数 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(x) | 将序列 s 转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个序列 (key,value)元组。 |
frozense(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
unichr(x) | 将一个整数转换为Unicode字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
3、eval() 函数
-
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
-
语法:
eval(expression[, globals[, locals]])
- expression – 表达式。
- globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
- locals – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
- 返回表达式计算的结果
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85