变量类型
变量只是用于存储值的保留内存位置。 这意味着当您创建变量时,您在内存中保留了一些空间。
根据变量的数据类型,解释器分配内存并决定可以存储在保留内存中的内容。 因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数,小数或字符。
将值分配给变量
Python变量不需要显式声明来保留内存空间。 为变量赋值时,声明会自动发生。 等号(=)用于为变量赋值。
=运算符左边的操作数是变量的名称,=运算符右边的操作数是存储在变量中的值。 例如 -
#!/usr/bin/python
counter = 100 # An integer assignment
miles = 1000.0 # A floating point
name = "John" # A string
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。
标准数据类型
存储在存储器中的数据可以是多种类型。 例如,一个人的年龄被存储为数字值,他或她的地址被存储为字母数字字符。 Python有各种标准数据类型,用于定义它们可能的操作以及每个类型的存储方法。
Python有五种标准数据类型 -
- Numbers
- String
- List
- Tuple
- Dictionary
Python Numbers
数字数据类型存储数值。 为它们分配值时会创建数字对象。 例如 -
var1 = 1
var2 = 10
您还可以使用del语句删除对数字对象的引用。 del语句的语法是 -
del var1[,var2[,var3[....,varN]]]]
您可以使用del语句删除单个对象或多个对象。 例如 -
del var
del var_a, var_b
Python支持四种不同的数字类型 -
- int (signed integers)
- long(长整数,它们也可以用八进制和十六进制表示)
- float(浮点实数值)
- complex (complex numbers)
例子 (Examples)
以下是一些数字示例 -
INT | 长 | 浮动 | 复杂 |
---|---|---|---|
10 | 51924361L | 0.0 | 3.14j |
100 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21.9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32.3+e18 | .876j |
-0490 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |
Python允许你使用带有long的小写l,但是建议你只使用大写的L来避免与数字1混淆.Python使用大写的L显示长整数。
复数由一对有序的实数浮点数组成,用x + yj表示,其中x和y是实数,j是虚数。
Python Strings
Python中的字符串被标识为引号中表示的连续字符集。 Python允许使用单引号或双引号。 可以使用切片运算符([]和[:])获取字符串子集,索引从字符串开头的0开始,并从最后的-1开始。
加号(+)是字符串连接运算符,星号(*)是重复运算符。 例如 -
#!/usr/bin/python
str = 'Hello World!'
print str # Prints complete string
print str[0] # Prints first character of the string
print str[2:5] # Prints characters starting from 3rd to 5th
print str[2:] # Prints string starting from 3rd character
print str * 2 # Prints string two times
print str + "TEST" # Prints concatenated string
这将产生以下结果 -
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST
Python Lists
列表是Python中最通用的复合数据类型。 列表包含以逗号分隔的项目,并用方括号([])括起来。 在某种程度上,列表类似于C中的数组。它们之间的一个区别是属于列表的所有项目可以是不同的数据类型。
存储在列表中的值可以使用切片运算符([]和[:])进行访问,索引从列表开头的0开始,然后一直运行到结束-1。 加号(+)是列表连接运算符,星号(*)是重复运算符。 例如 -
#!/usr/bin/python
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # Prints complete list
print list[0] # Prints first element of the list
print list[1:3] # Prints elements starting from 2nd till 3rd
print list[2:] # Prints elements starting from 3rd element
print tinylist * 2 # Prints list two times
print list + tinylist # Prints concatenated lists
这产生以下结果 -
['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
Python Tuples
元组是另一种与列表类似的序列数据类型。 元组由逗号分隔的许多值组成。 但是,与列表不同,元组括在括号内。
列表和元组之间的主要区别是:列表括在括号([])中,它们的元素和大小可以更改,而元组括在括号(()中)并且无法更新。 元组可以被认为是read-only列表。 例如 -
#!/usr/bin/python
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print tuple # Prints complete list
print tuple[0] # Prints first element of the list
print tuple[1:3] # Prints elements starting from 2nd till 3rd
print tuple[2:] # Prints elements starting from 3rd element
print tinytuple * 2 # Prints list two times
print tuple + tinytuple # Prints concatenated lists
这产生以下结果 -
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
以下代码对元组无效,因为我们尝试更新元组,这是不允许的。 列表可能有类似的情况 -
#!/usr/bin/python
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # Invalid syntax with tuple
list[2] = 1000 # Valid syntax with list
Python Dictionary
Python的字典是一种哈希表类型。 它们像在Perl中找到的关联数组或哈希一样工作,并由键值对组成。 字典键几乎可以是任何Python类型,但通常是数字或字符串。 另一方面,值可以是任意Python对象。
字典用大括号({})括起来,可以使用方括号([])分配和访问值。 例如 -
#!/usr/bin/python
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # Prints value for 'one' key
print dict[2] # Prints value for 2 key
print tinydict # Prints complete dictionary
print tinydict.keys() # Prints all the keys
print tinydict.values() # Prints all the values
这产生以下结果 -
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']
字典在元素之间没有顺序概念。 说元素是“乱序”是不正确的; 它们只是无序的。
数据类型转换
有时,您可能需要在内置类型之间执行转换。 要在类型之间进行转换,只需使用类型名称作为函数。
有几个内置函数可以执行从一种数据类型到另一种数据类型的转换。 这些函数返回表示转换值的新对象。
Sr.No. | 功能说明 |
---|---|
1 | int(x [,base]) 将x转换为整数。 base指定x是字符串的基数。 |
2 | long(x [,base] ) 将x转换为长整数。 base指定x是字符串的基数。 |
3 | float(x) 将x转换为浮点数。 |
4 | complex(real [,imag]) 创建一个复数。 |
5 | str(x) 将对象x转换为字符串表示形式。 |
6 | repr(x) 将对象x转换为表达式字符串。 |
7 | eval(str) 计算字符串并返回一个对象。 |
8 | tuple(s) 将s转换为元组。 |
9 | list(s) 将s转换为列表。 |
10 | set(s) 将s转换为集合。 |
11 | dict(d) 创建一个字典。 d必须是(键,值)元组的序列。 |
12 | frozenset(s) 将s转换为冻结集。 |
13 | chr(x) 将整数转换为字符。 |
14 | unichr(x) 将整数转换为Unicode字符。 |
15 | ord(x) 将单个字符转换为其整数值。 |
16 | hex(x) 将整数转换为十六进制字符串。 |
17 | oct(x) 将整数转换为八进制字符串。 |