python变量定义大全_详解python变量与数据类型

这篇文章我们学习 Python 变量与数据类型

变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问。在 Python 中 变量命名规定,必须是大小写英文,数字和 下划线(_)的组合,并且不能用数字开头。

变量命名规则:

变量名只能是字母,数字和下划线的任意组合

变量名第一个字符不能是数字

变量名区分大小写,大小写字母被认为是两个不同的字符

特殊关键字不能命名为变量名

声明变量

Python 中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。

name = "neo"

上述代码声明了一个变量,变量名为:name, 变量 name 的值为”neo”。

变量赋值

在 Python 中,等号 = 是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。

a = 123 # a 是整数

a = 'abc' # a 是字符串

这种变量本身类型不固定的语言称之为动态语言,与之对应的就是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如 Java 是静态语言,这样赋值就会报错:

多个变量赋值

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

a = b = c = 1

以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。

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

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

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

常量

所谓常量就是不能变的变量,比如常用的数学常数 π 就是一个常量。在 Python 中,通常用全部大写的变量名表示常量:

BI = 3.14

但事实上 BI 仍然是个变量,Python 根本无法保证 BI 不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改,语法也不会报错。

数据类型

Python3 中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)。

Python3 的六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

下面我们一一介绍这些数据类型的使用。

Number(数字)

Python3 支持 int、float、bool、complex(复数)。

数字类型是顾名思义是用来存储数值的,需要记住的是,有点和 Java 的字符串味道差不多,如果改变了数字数据类型的值,将重新分配内存空间。

Python 支持三种不同的数值类型:

整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。

浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

示例:

#!/usr/bin/python3

counter = 100 # 整型变量

miles = 1000.0 # 浮点型变量

name = "test" # 字符串

print (counter)

print (miles)

print (name)

数字类型转换

int(x) 将x转换为一个整数。

float(x) 将x转换到一个浮点数。

complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。

complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。 额外说明

和别的语言一样,数字类型支持各种常见的运算,不过 Python 的运算比别的大多数常见语言都更加丰富,此外,还有大量丰富的方法,提供更高效的开发。

数值运算示例:

print (5 + 4) # 加法 输出 9

print (4.3 - 2) # 减法 输出 2.3

print (3 * 7) # 乘法 输出 21

print (2 / 4) # 除法,得到一个浮点数 输出 0.5

print (2 // 4) # 除法,得到一个整数 输出 0

print (17 % 3) # 取余 输出 2

print (2 ** 5) # 乘方 输出 32

String(字符串)

创建字符串可以使用单引号、双引号、三单引号和三双引号,其中三引号可以多行定义字符串,Python 不支持单字符类型,单字符也在Python也是作为一个字符串使用。

我们定义一个 s='python'语句,它在计算机中的执行顺序是先在内存中创建一个字符串 Python ,在程序栈寄存器中创建一个变量 s,最后把 Python 的地址赋给s 。

再来看看字符串的一些常见操作:

s = '学习Python'

# 切片

s[0], s[-1], s[3:], s[::-1]# '优', 'n', 'Python', 'nohtyP的雅优'

# 替换,还可以使用正则表达式替换

s.replace('Python', 'Java')# '学习Java'

# 查找,find()、index()、rfind()、rindex()

s.find('P')# 3, 返回第一次出现的子串的下标

s.find('h', 2)# 6, 设定下标2开始查找

s.find('23333')# -1, 查找不到返回-1

s.index('y')# 4, 返回第一次出现的子串的下标

s.index('P')# 不同与find(), 查找不到会抛出异常

# 转大小写, upper()、lower()、swapcase()、capitalize()、istitle()、isupper()、islower()

s.upper()# '学习PYTHON'

s.swapcase()# '学习pYTHON', 大小写互换

s.istitle()# True

s.islower()# False

# 去空格,strip()、lstrip()、rstrip()

# 格式化

s1 = '%s %s' % ('Windrivder', 21)# 'Windrivder 21'

s2 = '{}, {}'.format(21, 'Windridver')# 推荐使用format格式化字符串

s3 = '{0}, {1}, {0}'.format('Windrivder', 21)

s4 = '{name}: {age}'.format(age=21, name='Windrivder')

# 连接与分割,使用 + 连接字符串,每次操作会重新计算、开辟、释放内存,效率很低,所以推荐使用join

l = ['2017', '03', '29', '22:00']

s5 = '-'.join(l)# '2017-03-29-22:00'

s6 = s5.split('-')# ['2017', '03', '29', '22:00']

以上是一些常见的操作。

另外还有一点需要注意的是字符串编码,所有的 Python 字符串都是 Unicode 字符串,当需要将文件保存到外设或进行网络传输时,就要进行编码转换,将字符转换为字节,以提高效率。

# encode 将字符转换为字节

str = '学习Python'

print (str.encode())# 默认编码是 UTF-8 输出:b'\xe5\xad\xa6\xe4\xb9\xa0Python'

print (str.encode('gbk')) # 输出 b'\xd1\xa7\xcf\xb0Python'

# decode 将字节转换为字符

print (str.encode().decode('utf8')) # 输出 '学习Python'

print (str.encode('gbk').decode('gbk')) # 输出 '学习Python'

List(列表)

类似 Java List 集合接口

列表是写在方括号 [] 之间、用逗号分隔开的元素列表,列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套),列表中的元素是可以改变。

示例:

Weekday = ['Monday','Tuesday','Wednesday','Thursday','Friday']

print(Weekday[0]) # 输出 Monday

#list 搜索

print(Weekday.index("Wednesday"))

#list 增加元素

Weekday.append("new")

print(Weekday)

# list 删除

Weekday.remove("Thursday")

print(Weekday)

Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开,组中的元素类型也可以不相同。

示例:

letters = ('a','b','c','d','e','f','g')

print(letters[0]) # 输出 'a'

print(letters[0:3]) # 输出一组 ('a', 'b', 'c')

Sets(集合)

类似 Java Set 集合接口

集合(set)是一个无序不重复元素的序列,使用大括号 {} 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 {} ,因为 {} 是用来创建一个空字典。

集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:

示例:

a_set = {1,2,3,4}

# 添加

a_set.add(5)

print(a_set) # 输出{1, 2, 3, 4, 5}

# 删除

a_set.discard(5)

print(a_set) # 输出{1, 2, 3, 4}

Dictionary(字典)

类似 Java Map 集合接口

字典是一种映射类型,它的元素是键值对,字典的关键字必须为不可变类型,且不能重复。创建空字典使用 {} 。

示例:

Logo_code = {

'BIDU':'Baidu',

'SINA':'Sina',

'YOKU':'Youku'

}

print(Logo_code)

# 输出{'BIDU': 'Baidu', 'YOKU': 'Youku', 'SINA': 'Sina'}

print (Logo_code['SINA']) # 输出键为 'one' 的值

print (Logo_code.keys()) # 输出所有键

print (Logo_code.values()) # 输出所有值

print (len(Logo_code)) # 输出字段长度

总结

本节给大家介绍了 Python 变量 和六种标准的数据类型,给大家演示了变量的使用,以及六个六种标准的数据类型的常用操作。

以上就是详解python变量与数据类型的详细内容,更多关于python变量与数据类型的资料请关注python博客其它相关文章!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 数据库改操作_数据库的插入、修改、删除操作(java实现)

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JDBCTest {// 定义数据库访问参数String url "jdbc:sqlserver://localhost:1433; DatabaseNamelihongchao&…

python3安装pywin32_Python3 pywin32模块安装的详细步骤

python新手一枚,操作系统Win10 64 bit,Python版本,3.7因为某个脚本需要用到win32con 和win32api模块,run -- cmd ,使用easy_install pywin32 命令安装,提示错误,搜不到,网上搜了下教程&#x…

创建时间指定日期 java,Java避坑之如何创建指定时间Date对象

在翻看自己以前写的惨不忍睹的代码时,发现了自己曾经写的一个跟Date有关的坑。Date date new Date(2020, 1, 1);System.out.println(date);我的目的是想创建一个2020年1月1日的时间对象date,但是我们创建的date真的就代表2020年1月1日吗?错&…

pagerank数据集_从数据结构到算法:图网络方法初探

机器之心原创作者:朱梓豪编辑:Qing Lin如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地。其实早在很多年前,图神经网络就以图嵌入、图表示学习、网络嵌入等别名呈现出来,其实所有的这些方法本…

php curl上传文件返回false,php curl上传文件$_FILES为空的问题

PHP 5.0~5.6 各版本兼容的cURL文件上传最近做的一个需求,使用PHP cURL上传文件。踩坑若干,整理如下。不同版本PHP之间cURL的区别PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求。传统上,…

python判断几个数最大最小_python 找出list中最大或者最小几个数的索引方法

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

netty 客户端断开 异常处理_netty案例,netty4.1基础入门篇八《NettyClient半包粘包处理》发数据方式》...

小傅哥 | https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获。专注于原创专题案例编写,目前已完成的专题有;Netty4.x实战专题案例、用Java实现JVM、基于JavaAgent的全链路监控、手写RPC框架、架构设计专题案例、源码分析等。你…

Java Windows注销用户,中止Windows从Java注销

EDIT2对于那些跟随讨论的人,我留下了我的第一个答案,但似乎他们没有工作。首先找到我的真正解决方案好吧,所以我认为这实际上有效,但它并不完全可以接受,因为它使用了受限制的API部分(但它自Java 1.3以来就存在并且仍然…

python generator_Python Generator漫谈

作为一个Python初学者, Python的格式化语法让众多编程小白追捧, 它的语法糖让代码变得简洁易读,它的庞大开源库让它在各个领域都能发挥作用. 但我时常感受到这个门槛极低的语言远没有表面上看起来易懂易用. 在Python的学习之路上, 我也时常迷茫于自己是否真正掌握了…

php5.5 连接数据库,php5.5 session_set_save_handler 连接数据库问题

好久前忘了在什么地方抄来的,一直好用,但是升级到PHP5.5就不好用了 出现警告服务器无法修改PHP.ini 只好自己试着用mysqli写 但是一直写不出来 请高手指教!!谢谢回复讨论(解决方案)把 mysql_ 都改成 mysqli_>把 mysql_ 都改成 …

python获取屏幕文字_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)...

前言:今天为大家带来的内容是详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)本文具有不错的参考意义,希望能够帮助到大家!Python获取电脑截图有多种方式,具体如下:1. PIL中的ImageGrab模块2. wi…

支付宝php异步回调,支付宝支付成功之后异步回调处理

/*** alipay_notify.php.* User: lvfk* Date: 2017/10/26 0026* Time: 13:48* Desc: 支付宝支付成功异步通知*/include_once (__DIR__./../alipay-sdk-PHP-20171023143822/AopSdk.php);//验证签名$aop new \AopClient();$aop->alipayrsaPublicKey \Comm\Pay\Alipay::ALIPA…

python frame如何置顶_Python tkinter frame父窗口小部件排列列

我把滚动条放在一个框架里,框架放在一个小部件里。这个框架上面有一个标签。上面的标签有三列。带有滚动条的框架有三列。我无法让框架内和框架上方的三根柱子对齐。在如果您能帮我排好纵队,我们将不胜感激。谢谢。在以下是MWE:import tkinte…

MySQL和mq一致性,Mysql与Redis一致性问题

缓存一致性产生背景如果每次频繁的访问数据库的时候,虽然查询底层使用B树索引 但还会做磁盘的IO操作,可能会对数据库的压力非常大。所以为了能够减轻数据库的访问压力,会使用一些缓存实现减轻数据库的压力。比如 Redis、es、ehcache、oscache…

python boolean_Python成为专业人士笔记-Boolean 布尔操作符研究

专业人士笔记”系列目录:创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com‘and’ 和 ‘or’ 并不一定返回一个布尔值当使用or时,如果为真,它将返回表达式中的第一个值&…

python八大选择排序_python之八大排序方法

排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定插入…

int arr 13 java,java学习13 - 数组的定义、操作、异常、二维数组

续java学习12:1、数组,引用类型变量,保存数据实际是保存的数组的首地址2、定义数组容器三要素,数据类型,大小(长度),数组名3、数组的定义公式一:数据类型[] 数组名 new 数据类型[元素个数或数组长度]4、数…

clustalw序列比对_序列比对(二)

Homology is the central concept for all of biology.——David Wake. Science, 1994前言正如前面引用的这句话,同源性是生物学中的核心问题。研究序列的同源性问题,就要用到序列比对的工具,上一篇笔记简单介绍了序列比对的原理,…

java js引擎,Java8 Nashorn JavaScript引擎

使用Java8,Nashorn大大提高了JavaScript 引擎引入,以取代现有的Nashorn Java脚本引擎。Nashorn提供2至10倍更好的性能,因为它直接编译代码在存储器,并传递到字节码JVM.Nashorn使用invokedynamics函数,在Java7引入以提高…

pr渲染程序选哪个_PR的bug你遇到过几个?

哈喽 大家好呀 我是K同学!对于Pr的用户来讲,Pr有很多BUG让人很奔溃,不仅Pr奔溃了,人都奔溃了作为Pr的老用户,今天我就来盘点下,我遇到过Pr的变态BUG第一个Pr不支持微软输出法这是我使用Pr遇到的第一个BUG&a…