前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python:变量与数据类型

Python:变量与数据类型

原创
作者头像
HLee
修改2021-03-02 14:22:30
9230
修改2021-03-02 14:22:30
举报
文章被收录于专栏:房东的猫

变量

在 Python 中 变量命名规定,必须是大小写英文,数字和 下划线(_)的组合,并且不能用数字开头。

变量命名规则:

  • 变量名只能是字母,数字和下划线的任意组合
  • 变量名第一个字符不能是数字
  • 变量名区分大小写,大小写字母被认为是两个不同的字符
  • 特殊关键字不能命名为变量名

声明变量

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

代码语言:javascript
复制
name = "neo"

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

变量赋值

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

代码语言:javascript
复制
a = 123 # a 是整数
a = 'abc' # a 是字符串

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

多个变量赋值

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

代码语言:javascript
复制
a = b = c = 1

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

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

代码语言:javascript
复制
a, b, c = 1, 2, "neo"

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

常量

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

代码语言:javascript
复制
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都是浮点型。

数字类型转换

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

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

代码语言:javascript
复制
a = 100  # 整数
b = -100  # 负整数
c = 100.0  # 浮点型
d = -100.0  # 负浮点型

print(a)
print(b)
print(c)
print(d)

print('--------------------------')

e = int(a)  # 将a转换为一个整数
f = float(a)  # 将a转换为一个浮点型
g = complex(a)  # 将a转换到一个复数,实数部分为 x,虚数部分为 0。
h = complex(a, 2)

print(e)
print(f)
print(g)
print(h)

print('--------------------------')

print(3 + 2)
print(3 - 1)
print(3 * 2)
print(3 ** 2)  # 乘方
print(4 / 2)
print(5 // 2)  # 除法 取整数位
print(3 % 2)  # 取余

String(字符串)

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

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

代码语言:javascript
复制
# replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次
# find()
# rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回 -1
# index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常
# rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间
# upper() 方法将字符串中的小写字母转为大写字母
# lower() 方法转换字符串中所有大写字符为小写
# swapcase() 方法用于对字符串的大小写字母进行转换
# islower() 方法检测字符串是否由小写字母组成
# isupper() 方法检测字符串中所有的字母是否都为大写
# istitle() 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
# capitalize()将字符串的第一个字母变成大写,其他字母变小写
# strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
# lstrip() 方法用于截掉字符串左边的空格或指定字符
# rstrip() 删除 string 字符串末尾的指定字符(默认为空格)
# join()
# split()
# encode()
# decode()


a = '学习Python'

print(a[0:3])
print(a[::-1])  # -1指的是反向切片

print('--------------------------')

b = a.replace('Python', 'Java')
print(a)
print(b)

print('--------------------------')

c = a.find('P')
print(c)
c = a.find('W')  # 查找不到-1
print(c)
c = a.find('P', 2)  # 指定索引开始查找
print(c)
c = a.rfind('P')  # 返回字符串最后一次出现的位置,如果没有匹配项则返回 -1
print(c)
c = a.index('P')
print(c)
c = a.index('P')  # 查不到会抛异常
print(c)
c = a.rindex('P')  # 返回子字符串 str 在字符串中最后出现的位置
print(c)

print('--------------------------')

u = a.upper()
print(u)
l = a.lower()
print(l)
d = a.swapcase()  # 大小写转换
print(d)
d = l.islower()
print(d)
d = u.isupper()
print(d)
d = a.istitle()  # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
print(d)

print('--------------------------')

e = '%s %s' %('a', 'b')
print(e)
e = '{}, {}'.format('a', 'b')
print(e)
e = '{0}, {1}, {0}'.format('a', 'b')
print(e)
e = '{name}, {address}'.format(name='Lee', address='北京朝阳')
print(e)

print('--------------------------')

l = ['2017', '03', '29', '22:00']
f = '-'.join(l)
print(f)
g = f.split('-')
print(g)

print('--------------------------')

h = a.encode()
i = a.encode('gbk')
print(h)
print(i)
print(h.decode())
print(i.decode('gbk'))

Tuple(元组)

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

代码语言:javascript
复制
letters = ('a', 'b', 'c', 'd', 'e', 'f', 'g')

print(letters)
print(letters[0])
print(letters[0:3])

List(列表)

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

代码语言:javascript
复制
weekday = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

print(weekday[0], end=' ')
print(weekday[1], end=' ')
print(weekday[2], end=' ')
print(weekday[3], end=' ')
print(weekday[4])

print(weekday.index('Tuesday'))

weekday.append('Saturday')
print(weekday)

weekday.remove('Saturday')
print(weekday)

Sets(集合)

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

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

代码语言:javascript
复制
a_set = {1, 2, 3, 4}

a_set.add(5)
print(a_set)

a_set.discard(5)
print(a_set)

Dictionary(字典)

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

代码语言:javascript
复制
logo_code = {'BIDU': 'Baidu', 'SINA': 'Sina', 'YOKU': 'Youku'}

print(logo_code)
print(logo_code['SINA'])
print(logo_code.keys())
print(logo_code.values())
print(len(logo_code))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 变量
    • 声明变量
      • 变量赋值
        • 多个变量赋值
          • 常量
          • 数据类型
            • Number(数字)
              • String(字符串)
                • Tuple(元组)
                  • List(列表)
                    • Sets(集合)
                      • Dictionary(字典)
                      相关产品与服务
                      腾讯云 BI
                      腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档