数据类型

一、标识符与关键字

标识符

定义

  • 在程序中自定义的一些名称

组成

  • 由任意长度的非空字符组成的序列

命名规则

  1. 只要是Unicode编码的字母,都可以充当引导字符,包括ASCII字母、下划线以及大多数非英文语言的字母。后续字符可以是任意引导字符,或者Unicode编码认为是数字的任意字符,或者是加泰罗尼亚字符。
  2. 不能与关键字同名
    标识符严格严格区分大小写!

约定

  • 不要使用Python预定义的标识符名对自定义的标识符进行命名。
  • 标识符的开头和结尾都使用下划线的情况,应当避免。(因为他们有特殊的用处)
    下划线本身可以作为标识符,有特殊的约定

关键字

定义

  • 被Python语言赋予特殊含义的单词

特点

  • 所有字母都为小写

列表

二、数据类型

Integral类型

整数类型

定义
  • 用于表示所有整数
特点
  • 整数的大小受限于内存的大小,自动根据整数的大小分配空间
表现形式
  • 十进制:默认
  • 二进制:0b\0B
  • 八进制:0o\0O
  • 十六进制:0x\0X
整数类型对象的创建方式
  • 通过给变量赋字面意义上的值
x = 14
  • 通过数据类型创建对象
x = int() #对象被赋予一个默认值0
y = int(z) #若对象z与int相同,则对于原对象进行一次浅拷贝;反之,会尝试进行转换
p = int("A4"16) #p = 164

布尔型

定义
  • 逻辑上的真假:True 和 False
特点
  • int 和 bool之间存在对应关系。即0–>False,非0整数都表示True。
布尔类型对象的创建
  • 通过给变量赋字面意义上的值
t = True
  • 通过数据类型创建对象
t = bool() #t = False
m = bool(True) #m = True
q = bool(12) #q = True,传入非布尔类型对象,根据机制返回新的布尔类型对象

三、浮点类型

  • Python提供了三种浮点值:内置的float与complex类型,以及标准库的decimal.Decimal类型,它们都是固定的。
  • 一般来说,浮点类型的数值是对十进制数值的近似表示(base的差异所致)

浮点数

定义
  • 用于表示小数的类型
浮点类型对象的创建
  • 通过给变量赋字面意义上的值
x = 12.3 #x = 12.3 <class"float">
  • 通过数据类型创建对象
x = float() #x = 0.0
y = float(9.3) #x = 9.3
z = float(not_float) #返回值为bool类型

复数

定义
  • 用于表示复数的类型
组成
  • 由一对浮点数组成,分别表示实部和虚部。
复数类型对象的创建
  • 通过给变量赋字面意义上的值
z = 4 + 0j #虚部不可省略,当实部为0时,可是省略。
print(z.real,z.imag) #复数两部分以属性名的形式存在
  • 通过数据类型创建对象
x = complex() #x = 0j
y = complex(4+j) #y = 4+j
z = complex(not_complex) #尝试返回一个复数 

十进制数字

定义
  • 指定精度的小数类型
decimal.Decimal类型对象的创建
  • 通过数据类型创建对象
import decimal
a = decimal.Decimal(98) #整数类型作为参数
b = decimal.Decimal("23.33") #字符串类型作为参数,浮点型不能作为参数,精度不够
特点
  • Decimal的计算比浮点数的计算慢

四、字符串

定义

  • 固定不变的sr数据类型,是固定序列

字符串数据类型对象的创建

  • 通过引号创建
my_str = 'Hello World!' #单引号创建
my_str2 = "Hello World!" #双引号创建
my_str3 = """"Hello World!""" #三引号创建
  • 通过数据类型创建对象
x = str() #x = ''
y = str(type_to_str) #把其他数据类型(可转换成字符串类型的类型),还可以加入编码格式和处理编码错误两个参数

引号使用的细节

  • 当字符串中出现引号时,可以用不同于包含字符串两端的引号或者转义字符。
a = "Single 'quotes' are fine;\"double\" must be escaped." #a = 'Single \'quotes\' are fine;"double" must be escaped.'
  • 在圆括号、方括号、花括号或者三引号中可以直接使用换行。
my_str = """中华人民共和国
                万岁!"""
  • 用r引导字符串,可以将所有字符按照字面意义理解
  • 用引号连接换行的字符方法
text = "My name is" + \
"Jane" #text = 'My name is
Jane'
s = ('My name is'
'Jane') #s =  My name is
Jane'

字符串的常用操作

字符串的分片与步距
  • 存取操作符([])对字符串进行分片,由于str是固定序列,不能对其存储。
  • 分片和原对象是两个对象。
  • 格式:
    • seq[start]
    • seq[start:end] 默认:start = 0,end = len(seq)
    • seq[start:end:step] 当step为负数时,star=-1,end = 0;反之,同上。
s = 'Light ray'
a = s[0] #a = 'L'
b = s[:] #b = 'Light ray'
c = s[::-1] #c = 'Light ray' #可用于反转字符串
  • 切片的区间描述只要与方向一致即可,没有要求两端大小的关系。
  • 切片具有“”顾头不顾尾”的特点。
字符串的常用操作方法
  • s.join(seq) 返回序列seq中每一项连接起来的结果,并以s作为两项之间的分隔
 ''.join(['Alex','Dog','Pig']) #'AlexDogPig'
 '-'.join(['Alex','Dog','Pig']) #'Alex-Dog-Pig'
  • s.find(t,start,end) 返回t在s中的最左位置,如果没有找到,就返回-1;使用s.rfind()可以反向搜索。
  • s.index(t,start,end) 返回t在s中的最左位置,如果没有找到,就产生ValueError。使用s.find()可以反向搜索。
s = 'Alex eku'
a = s.find('e') #a = 2
b = s.find('c') #b = -1
c = s.index('e') #c = 2
d = s.index('z') #ValueError: substring not found
  • s.replace(t,u,n) 返回s的 一个副本,其中每个(n可以指定)字符串t被u替换。
s = 'Alex eku'
s.replace('e','g',1) #-->'Algx eku'
s.replace('e','') #-->'Alx ku' 可用于删除第一个字符串的内容
  • s.split(t,n) 返回一个字符列表,要求在字符串t处分割n次,如果没有给定n,就分割最多次,如果t没有给定,就在空白处分割。s.rsplit()反向分割。
 s = 'Alex eku'
 s.split('e',1) #-->['Al', 'x eku']
 s.split() #-->['Alex', 'eku']
字符串格式化
  • s.format()返回一个新字符串,在新字符串中,原字符串的替换字段被适当格式化后的参数替代
s = "My name is '{0}',and {1}" #s = "My name is '{0}',and {1}"
s.format('Alex',34) #-->"My name is 'Alex',and 34"
  • 字段名
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值