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

数据类型和变量

作者头像
紫禁玄科
发布2022-03-24 17:17:50
5550
发布2022-03-24 17:17:50
举报
文章被收录于专栏:紫禁玄科紫禁玄科

内置数据类型

在编程中,数据类型是一个重要的概念。

变量可以存储不同类型的数据,并且不同类型可以执行不同的操作。

在这些类型中,Python默认拥有以下内置数据类型。

一,整数

整数就是没有小数部分的数字,Python中的整数包括正整数,0和负整数。

有些强类型的编程语言会提供多种整数类型,每种类型的长度都不同,能容纳的整数的大小也不同,开发者要根据实际数字的大小选用不同的类型。例如C语言提供short、int、long、long long 四种类型的整数,它们长度以此递增,它们的长度依次递增,初学者在选择整数类型时往往比较迷惑,有时还会导致数值溢出。

而Python则不同,整数不分类型,或者说它是一种类型的整数。Python整数的取值范围是无限的,不管多大或者多小的数字,Python都能轻松处理。

当所用数值超过计算机自身的计算能力时,Python 会自动转用高精度计算(大数计算)。

代码语言:javascript
复制
#将78赋值给变量n
n = 78
print(n)
print(type(n))
#给X赋值一个很大的整数
x = 8888888888888888888888
print(x)
print(type(x))
#给y赋值一个很小的整数
y = -7777777777777777777777
print(y)
print(type(y))

x 是一个极大的数字,y 是一个很小的数字,Python 都能正确输出,不会发生溢出,这说明 Python 对整数的处理能力非常强大。

不管对于多大或者多小的整数,Python 只用一种类型存储,就是 int。

整数的不同进制

在 Python 中,可以使用多种进制来表示整数:

1) 十进制形式

我们平时常见的整数就是十进制形式,它由 0~9 共十个数字排列组合而成。

注意,使用十进制形式的整数不能以 0 作为开头,除非这个数值本身就是 0。

2) 二进制形式

由 0 和 1 两个数字组成,书写时以0b0B开头。例如,101 对应十进制数是 5。

代码语言:javascript
复制
#二进制
bin1 = 0b101
print('bin1Value: ', bin1)
bin2 = 0B110
print('bin2Value: ', bin2)

3) 八进制形式

八进制整数由 0~7 共八个数字组成,以0o0O

开头。注意,第一个符号是数字 0,第二个符号是大写或小写的字母 O。

在 Python 2.x 中,八进制数字还可以直接以0(数字零)开头。

代码语言:javascript
复制
#八进制
oct1 = 0o26
print('oct1Value:',oct1)
oct2 = 0o41
print('oct2Value:',oct2)

4) 十六进制形式

由 0~9 十个数字以及 A~F(或 a~f)六个字母组成,书写时以0x0X

开头,

代码语言:javascript
复制
#十六进制
hex1 = 0x45
hex2 = 0x4Af
print("hex1Value:",hex1)
print("hex2Value:",hex2)

二,浮点数

1,Python浮点数数据类型概念

浮点数据类型,可以简称为浮点类型

小数通常以浮点数的形式存储,在Python中用float表示。

可以理解为浮点数是用来描述小数的。

浮点数通常使用C中的double来实现。

Python中只有一种小数类型,就是float。

2.1小数的表示形式

2.1十进制表示形式

我们平时看到的小数形式,必须包含一个小数点。

代码语言:javascript
复制
num_float = 22.1
num2_float = 35.8
num3_float = 22.0

2.2指数表示形式

2.2.1指数表示形式概念

Python小数的指数表示形式。

代码语言:javascript
复制
mEe 或 mee :: Mantissa x Base^Exponent

说明:

::表示等价于;

m为尾数(Mantissa)部分,是一个十进制;

e(最后那个e)为指数(Exponent)部分,是一个十进制整数;

E或e(中间的E或e)是固定的字符,可以是大写的或者小写的,用与分割尾数部分和指数部分。整个表达式等价于ax10n。

Base为基,Base等于10.

实列如下

代码语言:javascript
复制
22.1E1 = 22.1 x 10^1  # 其中 22.1 是尾数,1 是指数。
44E-2 = 44 x 10^-2  # 44 是尾数,-2 是指数

2.2.2注意事项

只要写成指数的形式,就是小数。

即使最终值看起来像一个整数。

代码语言:javascript
复制
type(44E2)

三,相关函数float()

返回从数字或字符串x生成的浮点数

代码语言:javascript
复制
class float([x])

x如果是字符串,则它必须是只包含十进制数字的字符串,字符串前面可以有符号(+或-),之前也可以有空格。

x也可以是NaN(非数字),正负无穷大的字符串。

x如果是整数或浮点数,则返回具有相同值(在Python浮点数精度范围内)的浮点数如果实参在Python浮点精度范围外,则会触发OverflowError

x如果没有实参,则返回0.0

实列如下:

例一,

代码语言:javascript
复制
result1 = float('23')
print('result1 = ', result1)

result2 = float('+23')  # 字符串前可以有 + 符号,不影响结果
print('result2 = ', result2)

result3 = float('-23')  # 字符串前可以有 - 符号,影响结果
print('result3 = ', result3)

result4 = float(' 23')  # 字符串前可以有空格
print('result4 = ', result4)

例二,

代码语言:javascript
复制
result5 = float('NaN')  # 实参也可以是非数字 NaN
print('result5 = ', result5)

例三,

代码语言:javascript
复制
result6 = float()  #没有实参
print('result6 = ',result6)

三,字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号( '" )来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。例如:

代码语言:javascript
复制
var1 = 'Hello World!'
var2 = "Python zijin"

Python不支持单字符类型,单字符类型在Python中也是作为一个字符串使用。

Python访问字符串,可以使用方括号[]来获取字符串(这种方式也被称为切片),字符串的截取的语法格式如下;

代码语言:javascript
复制
变量[头下标:尾下标]

Python截取的特点是取头下标的值到尾下标的值(尾下标的值不取)

索引值以0为开始,-1为从末尾的开始位置。

代码语言:javascript
复制
str="ZiJinDian"#“”需要截取的字符

print(str[:3]) #取ZiJ(也就是截取ZiJinDian的前三个字母)
print(str[:-6])#取ZiJ(-6也就是删除ZiJinDian的后六个字母inDian留下ZiJ)

#取inD
print(str[3:6])#取ZiJinDian第4位5为和6位字母inD(从前索引)
print(str[-6:-3])#取ZiJinDian的inD(从后索引)

#只有头下标/尾下标的情况
print(str[:3])#截取ZiJinDian前三位ZiJ(从前截取)
#只有尾下标的情况,默认头下标为0(正序的0,也就是字符串开始的地方)
#也就是从字符串开头截取到3的位置(也就是ZiJ)

print(str[3:])#截取ZiJinDian后六位inDian(从后截取)
#只有头下标的情况,默认尾下标为0(逆序的0,也就是字符串结束的地方)
#也就是从3的位置截取到字符串结尾(也就是inDian)

#更多应用
str2 ="我爱我的祖国,就像我爱我的母亲,"
#截取协议名称
print(str2[:6]) #也就是截取前五位
#截取域名
print(str2[8:-1]) #也就是截取第八位到倒数第一位

Python 转义字符

在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。如下表:

Python字符串运算符

下表实例变量 a 值为字符串 "hello",b 变量值为 "ZiJinDian":

Python 字符串格式化

Python支持格式化字符串的输出。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个字符串格式符%5的字符中。

在python中,字符串的格式化使用与C/C++中的print函数有着一样的语法。

代码语言:javascript
复制
name = "紫禁"
age = 22
print("我叫 %s 今年 %d 岁!" % (name, age))

python字符串格式化符号:

格式化操作符辅助指令:

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

Python三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符,制表符以及其他特殊字符。

代码语言:javascript
复制
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)

Python新格式化输出:f-string

1,f-string简介

python3.6引入了一种新的字符串格式方式:f-string格式化字符串。从%s格式化到format格式化再到f-string格式化,格式化的方式越来越直观,f-string的效率也较前两个高一些。

同时值得注意的是,f-string就是在format格式化的基础之上做了一些变动,核心使用思想和format一样,因此大家可以学习完%s和format格式化,再来学习f-string格式化

2,f-string的常见使用方法

2.1基本使用

1.11f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

之前我们习惯用百分号 (%):

代码语言:javascript
复制
name = 'ZiJinDian'
print('Hello %s' % name)

f-string格式化字符串f开头,后面跟着字符串,字符串中的表达式用大括号{}包起来,它会将变量或表达式计算后的值替换进去,实列如下:

代码语言:javascript
复制
name = 'ZiJinDian'
print(f'hello{name}')#替换变量

print(f'{1+2}')#使用表达式

w = {'name':'ZiJinDian','url':'China'}
print(f'{w["name"]}:{w["url"]}')

用了这种方式明显更简单了,不用去判断使用%s,还是%d。

在Python3.8的版本中可以使用=符号来拼接运算表达式与结果:

代码语言:javascript
复制
x = 1
print(f'{x+1}')

x = 1
print(f'{x+1=}')

Unicode字符串

在Python2中,普通字符串是以8位ASII码进行存储位16位Unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀u。

在Python3中,所有的字符串都是Unicode字符串

Python的字符串内建函数

Python的字符串常用内建函数如下:

代码语言:javascript
复制
方法及描述

10

isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

11

isalpha()如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False

12

isdigit()如果字符串只包含数字则返回 True 否则返回 False..

13

islower()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

14

isnumeric()如果字符串中只包含数字字符,则返回 True,否则返回 False

15

isspace()如果字符串中只包含空白,则返回 True,否则返回 False.

16

istitle()如果字符串是标题化的(见 title())则返回 True,否则返回 False

17

isupper()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

18

join(seq)以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

19

len(string)返回字符串长度

20

ljust(width[, fillchar])返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

21

lower()转换字符串中所有大写字符为小写.

22

lstrip()截掉字符串左边的空格或指定字符。

23

maketrans()创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

24

max(str)返回字符串 str 中最大的字母。

25

min(str)返回字符串 str 中最小的字母。

26

replace(old, new [, max])把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。

27

28

rindex( str, beg=0, end=len(string))类似于 index(),不过是从右边开始.

29

rjust(width,[, fillchar])返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

30

rstrip()删除字符串末尾的空格或指定字符。

31

split(str="", num=string.count(str))以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串

32

splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

33

startswith(substr, beg=0,end=len(string))检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

34

strip([chars])在字符串上执行 lstrip()和 rstrip()

35

swapcase()将字符串中大写转换为小写,小写转换为大写

36

title()返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

37

translate(table, deletechars="")根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中

38

upper()转换字符串中的小写字母为大写

39

zfill (width)返回长度为 width 的字符串,原字符串右对齐,前面填充0

40

isdecimal()检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 紫禁玄科 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 整数的不同进制
    • 1) 十进制形式
      • 2) 二进制形式
        • 3) 八进制形式
          • 4) 十六进制形式
          • Python 转义字符
          • Python 字符串格式化
          • Python三引号
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档