Python变量和数据类型详解


Posted in Python onFebruary 15, 2017

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。

Python 相关文章推荐
python实现定制交互式命令行的方法
Jul 03 Python
Python线程中对join方法的运用的教程
Apr 09 Python
python的exec、eval使用分析
Dec 11 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
使用python语言,比较两个字符串是否相同的实例
Jun 29 Python
对pandas中Series的map函数详解
Jul 25 Python
Linux下多个Python版本安装教程
Aug 15 Python
Python实现分段线性插值
Dec 17 Python
python实现趣味图片字符化
Apr 30 Python
Python基础之字符串常见操作经典实例详解
Feb 26 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 Python
Django学习笔记之Class-Based-View
Feb 15 #Python
关于Python面向对象编程的知识点总结
Feb 14 #Python
Django日志模块logging的配置详解
Feb 14 #Python
深入理解Python对Json的解析
Feb 14 #Python
Python 2与Python 3版本和编码的对比
Feb 14 #Python
利用Python爬虫给孩子起个好名字
Feb 14 #Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 #Python
You might like
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
php 中文和编码判断代码
2010/05/16 PHP
php stripslashes和addslashes的区别
2014/02/03 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
python生成带有表格的图片实例
2019/02/03 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
Python 的AES加密与解密实现
2019/07/09 Python
基于python使用tibco ems代码实例
2019/12/20 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
聊聊python中的循环遍历
2020/09/07 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
网络维护中文求职信
2014/01/03 职场文书
初中学生期末评语
2014/04/24 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL