Python变量和数据类型详解

(编辑:jimmy 日期: 2024/11/14 浏览:2)

Python 变量类型   

   变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。

   基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。

   因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

变量赋值

   Python 中的变量赋值不需要类型声明。

   每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

   每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

   等号(=)用来给变量赋值。

   等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
 
print(counter)
print(miles)
print(name)

以上实例中,100,1000.0和"John"分别赋值给counter,miles,name变量。

执行以上程序会输出如下结果:

100
1000.0
John

多个变量赋值

Python允许你同时为多个变量赋值。例如:

a = b = c = 1

以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

您也可以为多个对象指定多个变量。例如:

a, b, c = 1, 2, "john"

以上实例,两个整型对象1和2的分配给变量 a 和 b,字符串对象 "john" 分配给变量 c。

注意:

以下关键字不能声明为变量:

and、as、assert、break、class、continue、def、del、elif、else、except、exec、finally、for、global、if、import、in、is、lambda、not、or、pass、print、raise、return、try、while、with、yield、id

Python中数据类型

一、整数

int = 20
print int
print 45678 + 0x12fd2

二、浮点数

float = 2.3
print float

三、字符串

a、使用单引号(')
用单引号括起来表示字符串,例如:

str = 'this is string'
print str

b、使用双引号(")
双引号中的字符串与单引号中的字符串用法完全相同,例如:

str = "this is string";
print str

c、使用三引号(''')
利用三引号,表示多行的字符串,可以在三引号中自由的使用单引号和双引号,例如:

str = '''this is string
this is pythod string
this is string'''
print str

四、布尔值

and:与运算,只有所有都为True,and运算结果才是True。
or:或运算,只要其中有一个为True,or运算结果就是True。
not:非运算,它是一个单目运算符,把True变成False,False 变成True。

bool = False
print bool
bool = True
print bool

五、空值

空值是Python里一个特殊的值,用None表示。
None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

六、列表

# -*- coding:utf-8 -*-

lst = ['A', 'B', 1996, 2017]
nums = [1, 3, 5, 7, 8, 13, 20]

# 访问列表中的值
print "nums[0]:", nums[0] # 1
print "nums[2:5]:", nums[2:5] # [5, 7, 8]
print "nums[1:]:", nums[1:] # [3, 5, 7, 8, 13, 20]
print "nums[:-3]:", nums[:-3] # [1, 3, 5, 7]
print "nums[:]:", nums[:] # [1, 3, 5, 7, 8, 13, 20]

# 更新列表
nums[0] = "ljq"
print nums[0]

# 删除列表元素
del nums[0]
'''nums[:]: [3, 5, 7, 8, 13, 20]'''
print "nums[:]:", nums[:]

# 列表脚本操作符
print len([1, 2, 3]) # 3
print [1, 2, 3] + [4, 5, 6] # [1, 2, 3, 4, 5, 6]
print ['Hi!'] * 4 # ['Hi!', 'Hi!', 'Hi!', 'Hi!']
print 3 in [1, 2, 3] # True
for x in [1, 2, 3]:
  print x, # 1 2 3

# 列表截取
L = ['spam', 'Spam', 'SPAM!']
print L[2] # 'SPAM!'
print L[-2] # 'Spam'
print L[1:] # ['Spam', 'SPAM!']

# 列表函数&方法
lst.append('append') # 在列表末尾添加新的对象
lst.insert(2, 'insert') # 将对象插入列表
lst.remove(1996) # 移除列表中某个值的第一个匹配项
lst.reverse() # 反向列表中元素,倒转
print lst.sort() # 对原列表进行排序
print lst.pop(1) # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
print lst
print lst.count('obj') # 统计某个元素在列表中出现的次数
lst.index('append') # 从列表中找出某个值第一个匹配项的索引位置,索引从0开始
lst.extend(lst) # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
print 'End:', lst

七、字典
字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

# -*- coding:utf-8 -*-

dit = {'name': 'Zara', 'age': 7, 'class': 'First'}
dict1 = {'abc': 456}
dict2 = {'abc': 123, 98.6: 37}
seq = ('name', 'age', 'sex')
# 访问字典里的值
print "dit['name']: ", dit['name']
print "dit['age']: ", dit['age']

# 修改字典
dit["age"] = 27 # 修改已有键的值
dit["school"] = "wutong" # 增加新的键/值对
print "dict['age']: ", dit['age']
print "dict['school']: ", dit['school']

# 删除字典
del dit['name'] # 删除键是'name'的条目
dit.clear() # 清空词典所有条目
del dit # 删除词典

dit = {'name': 'Zara', 'age': 7, 'class': 'First'}

# 字典内置函数&方法
cmp(dict1, dict2) # 比较两个字典元素。
len(dit) # 计算字典元素个数,即键的总数。
str(dit) # 输出字典可打印的字符串表示。
type(dit) # 返回输入的变量类型,如果变量是字典就返回字典类型。
dit.copy() # 返回一个字典的浅复制
dit.fromkeys(seq) # 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dit.get(dit['name']) # 返回指定键的值,如果值不在字典中返回default值
dit.has_key('class') # 如果键在字典dict里返回true,否则返回false
dit.items() # 以列表返回可遍历的(键, 值) 元组数组
dit.keys() # 以列表返回一个字典所有的键
dit.setdefault('subject', 'Python') # 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
dit.update(dict2) # 把字典dict2的键/值对更新到dict里
dit.values() # 以列表返回字典中的所有值
dit.clear() # 删除字典内所有元素

八、元祖

Python的元组(tuple)与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[];元组创建很简单,只需要在括号中添加元素,并使用逗号(,)隔开即可.

# -*- coding:utf-8 -*-

tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5)
tup3 = "a", "b", "c", "d"

# 访问元组
print "tup1[0]: ", tup1[0] # physics
print "tup1[1:3]: ", tup1[1:3] # ('chemistry', 1997)

# 修改元组
tup4 = tup1 + tup2
print tup4 # (12, 34.56, 'abc', 'xyz')

# 删除元组
tup = ('tup3', 'tup', 1997, 2000)
print tup
del tup

# 元组索引&截取
L = ('spam', 'Spam', 'SPAM!')
print L[0] # spam
print L[1] # Spam
print L[2] # 'SPAM!'
print L[-2] # 'Spam'
print L[1:] # ['Spam', 'SPAM!']

# 元组内置函数
print cmp(tup3, tup2) # 比较两个元组元素。
len(tup3) # 计算元组元素个数。
max(tup3) # 返回元组中元素最大值。
min(tup3) # 返回元组中元素最小值。
L = [1, 2, 3, 4]
print L
print tuple(L) # 将列表转换为元组。

九、定义字符串

\n 表示换行
\t 表示一个制表符
\\ 表示 \ 字符本身

十、Unicode字符串

Python默认编码ASCII编码

# -*- coding: utf-8 -*-

十一、数字类型转换

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转换为一个列表
chr(x) 将一个整数转换为一个字符
unichr(x) 将一个整数转换为Unicode字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串

小编特从多篇文章整理结合,刚好一起学习python。

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。