Python第3天 变量与数据类型

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

变量命名规则:

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

[En]

Variable names can only be any combination of letters, numbers and underscores

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

[En]

The first character of a variable name cannot be a number

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

[En]

Variable names are case sensitive, and uppercase and lowercase letters are considered to be two different characters

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

[En]

Special keywords cannot be named variable names

声明变量

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

name = "hello world"

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

变量赋值

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

a = 123 # a 是整数a = 'abc' # a 是字符串

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

多个变量赋值​

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

a = b = c = 1

在上面的示例中,创建了一个值为1的整数对象,并从后到前为其赋值,并为三个变量分配了相同的值。​

[En]

In the above example, an integer object with a value of 1 is created and assigned from back to front, and the three variables are assigned the same value. ​

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

[En]

You can also specify multiple variables for multiple objects. For example:

a, b, c = 1, 2, "hello world"

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

常量

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

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

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

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

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
让我们逐一介绍这些数据类型的用法。

[En]

Let’s introduce the use of these data types one by one.

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都是浮点型。

示例:

Python第3天 变量与数据类型

数字类型转换

int(x) 将x转换为一个整数。
float(x) 将x转换到一个浮点数。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。 额外说明
和别的语言一样,数字类型支持各种常见的运算,不过 Python 的运算比别的大多数常见语言都更加丰富,此外,还有大量丰富的方法,提供更高效的开发。

数值运算示例:

print (5 + 4)  # 加法   输出 9print (4.3 - 2) # 减法   输出 2.3print (3 * 7)  # 乘法  输出 21print (2 / 4)  # 除法,得到一个浮点数    输出 0.5print (2 // 4) # 除法,得到一个整数 输出 0print (17 % 3) # 取余   输出 2print (2 ** 5) # 乘方  输出 32

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

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

让我们来看看一些常见的字符串操作:

[En]

Let’s take a look at some common string operations:

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, 查找不到返回-1s.index('y')            # 4, 返回第一次出现的子串的下标s.index('P')        # 不同与find(), 查找不到会抛出异常# 转大小写, upper()、lower()、swapcase()、capitalize()、istitle()、isupper()、islower()s.upper()            # '学习PYTHON's.swapcase()            # '学习pYTHON', 大小写互换s.istitle()            # Trues.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')# 连接与分割,使用 + 连接字符串,每次操作会重新计算、开辟、释放内存,效率很低,所以推荐使用joinl = ['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() 而不是 {} ,因为 {} 是用来创建一个空字典。

集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:https://www.cndba.cn/hbhe0316/article/4998

示例:

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 集合接口

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

[En]

A dictionary is a mapping type whose elements are key-value pairs, and the keywords of the dictionary must be immutable and cannot be repeated. Create an empty dictionary using {}.

示例:

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))  # 输出字段长度

版权声明:本文由博主原创,未经博主许可不得转载。

[En]

Copyright notice: this article is originally created by the blogger and may not be reproduced without the permission of the blogger.

Python

Original: https://blog.51cto.com/u_15735145/5533579
Author: wx62e28ac222a20
Title: Python第3天 变量与数据类型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504559/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球