Python 学习之数据类型和变量

基础

Python的语法比较简单,采用缩进方式。

#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。

标识符由字母、数字、下划线组成。

在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。

Python 中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。

以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

Python 可以同一行显示多条语句,方法是用分号 分开。

数据类型

数据类型分类:

  • 数字
  • 字符串
  • 列表
  • 元组
  • 字典
  • 集合

  数字(整型、长整型、浮点型、复数、布尔型)

  

intlongfloatcomplex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3e+18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2E-12 4.53e-7j
  • 长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。
  • Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。

注意:long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代。

var1 = 1
var2 = 10

  字符串

  字符串是以单引号'或双引号"括起来的任意文本,比如'abc'"xyz"等等。请注意,''""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有abc这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I'm,空格,OK这6个字符。

s="a1a2···an"

  

python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

例如:

>>> s = 'abcdef'
>>> s[1:5]
'bcde'

加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
str = 'Hello World!'
 
print str           # 输出完整字符串
print str[0]        # 输出字符串中的第一个字符
print str[2:5]      # 输出字符串中第三个至第六个之间的字符串
print str[2:]       # 输出从第三个字符开始的字符串
print str * 2       # 输出字符串两次
print str + "TEST"  # 输出连接的字符串

以上实例输出结果:

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

  列表  

  List(列表) 是 Python 中使用最频繁的数据类型。

  列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

  列表是有序的,可修改的。

  列表用 [ ] 标识,是 python 最通用的复合数据类型。

  列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
 
print list               # 输出完整列表
print list[0]            # 输出列表的第一个元素
print list[1:3]          # 输出第二个至第三个元素 
print list[2:]           # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2       # 输出列表两次
print list + tinylist    # 打印组合的列表

输出:

['runoob', 786, 2.23, 'john', 70.2]
runoob
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

  元组

  元组是另一个数据类型,类似于 List(列表)。

  元组用 () 标识。

  元组是有序的,不可修改的。

  例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
 
print tuple               # 输出完整元组
print tuple[0]            # 输出元组的第一个元素
print tuple[1:3]          # 输出第二个至第四个(不包含)的元素 
print tuple[2:]           # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2       # 输出元组两次
print tuple + tinytuple   # 打印组合的元组

输出:

('runoob', 786, 2.23, 'john', 70.2)
runoob
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('runoob', 786, 2.23, 'john', 70.2, 123, 'john')

  字典

 

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

字典是无序的,可修改。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
 
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
 
 
print dict['one']          # 输出键为'one' 的值
print dict[2]              # 输出键为 2 的值
print tinydict             # 输出完整的字典
print tinydict.keys()      # 输出所有键
print tinydict.values()    # 输出所有值

输出:

This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']

  集合

  集合是可修改无序不重复的序列,集合使用花括号{}。

  去重,把一个列表变成集合,就自动去重了。

  关系测试,测试两组数据之前的交集、差集、并集等关系。

 创建集合:

  语法:set(可迭代对象)

  创建空集合:s = set()

  

s = set([3,4,5,6,7])    #创建一个数字集合{3, 4, 5, 6, 7}
w = set([2,3,4])
t = set("hello")# 遍历字符串中的每个字符,拆开成单个字符{'h', 'e', 'l', 'o'}

my_set1 = set(("hello",)) # 创建含有一个元素的集合,有逗号说明是元组
my_set2 = set(("haha","wode","en"))#创建一个含有多个元素的集合

print("s:",s)   # s: {3, 4, 5, 6, 7}
print("w:",w)   # w: {2, 3, 4}
print("my_set1:",my_set1) # {'hello'}
print("my_set2:",my_set2)   # {'en', 'haha', 'wode'}

s.add()  #添加集合

s.updata(可迭代对象)  # 添加多项

s.remove(x)  #删除指定元树x,如果x不存在则会发生错误

s.discard()  #和remove()一样,但是当删除指定元素不存在时,不会报错

s.clear()  #清空集合

s.pop()  #弹出最后一个书或弹出指定数

s = set([4,5])    #创建一个数字集合{3, 4, 5}

s.add('w')
print("添加后的s:",s)   # {4, 5, 'w'}

s.update(['ni','hao','ya'])    # 添加多项
print("添加多项后的s:",s)     # {'hao', 'ya', 4, 5, 'w', 'ni'}

# 我们输入字符串试试
s.update("hid") # 将字符串拆分单个字符后,然后再一个个添加到集合中,有重复的会忽略。,
print(s)        # {'hao', 'ya', 4, 5, 'w', 'h', 'ni', 'i', 'd'}

s.remove("hao")         # 移除元素
print("移除元素",s)      # {'w', 'e', 'o', 'l', 12, 'h', 23}

s.discard('ya')         # 移除元素,不存在不会发生错误
print(s)                # {'d', 4, 5, 'i', 'ni', 'w', 'h'}

s.pop()                # 随机删除集合中的元素,这个方法返回值是删除的数,不是返回None
print(s)                # {4, 5, 'i', 'ni', 'w', 'h'}

s.clear()
print(s)                # set()

|  生成两个集合的并集

&  生成两个集合的交集

-  生成两个集合的补集

^  生成两个集合的对称补集(也就是两个集合的并集减去交集)

>  判断一个集合是另一个集合的超集

<  判断一个集合是另一个集合的子集

==,  !=  判断集合是否相同

in , not in   判断集合是否在另一个集合中

len(s),  sum(s),  max(s),  min(s),  sum(s),  any(s),  all(s)

s = set([3,4,5,6,7])    #创建一个数字集合{3, 4, 5, 6, 7}
w = set([2,3,4])

print("求交集:",s&w)      # {3, 4}
print("求并集:",s | w)    # {2, 3, 4, 5, 6, 7}
print("求差集:",s-w)      # 减去相同的元素 {5, 6, 7}
print("求差集:",w-s)      # 减去相同的元素 {2}
print("并集减去交集:",s ^ w)    # {2, 5, 6, 7}

print(len(s))   # 5
print(3 in s)   # True

固定集合  frozenset

  固定集合是不可变无序的,含有唯一元素的不可迭代的集合,

  作用:固定集合可以作为字典的键,还可以作为字典的值

固定集合的构造函数

  frozenset()  创建一个空的固定集合

  frozenset(iterable)  用可迭代对象创建一个固定的集合

固定集合的运算和集合的运算完全一样

集合推导式:  {表达式  for  变量  in  可迭代对象  [if  真值表达式]} # [ ]可以省略

        集合推导式同样也可以嵌套

        {x for x in range(10)}  #返回集合

愿你我,长安,长乐,不悲,不怂, 和生活一刚到底,游刃有余,笑傲此生。
原文地址:https://www.cnblogs.com/oldthree3/p/11558390.html