Python基本数据类型

简介: Python基本数据类型

标识符


  • 第一个字符必须是字母表中字母或下划线 _


  • 标识符的其他的部分由字母、数字和下划线组成。


  • 标识符对大小写敏感。


python保留字


['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']


数据类型简介


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


# -*- coding: utf-8 -*-a = 1       # 整型b = 2.0     # 浮点(小数)print(a, type(a))        # 1, intprint(b, type(b))        # 2.0 float# 类型转换int、float,complex
使用使用以上三个关键字加中括号即可
例如 float 或者 complex 转int
int(float或者complex)
同理,要转什么。则用什么关键字+中括号即可


布尔类型(Bool)


布尔值是特殊的数字类型,采用二进制中的0,1.来表示FalseorTrue.布尔类型常在条件分支中作为判断


  • True(1)


  • False(0)


# 定义bool值a = Trueb = Falseprint(int(a), type(a))    # 1, boolprint(int(b), type(b))    # 0, bool


String(字符串)


  • python中单引号和双引号使用完全相同。


  • 使用三引号(‘’’或”””)可以指定一个多行字符串。


  • 转义符 ‘\’


  • 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。

    如 r”this is a line with \n” 则\n会显示,并不是换行。


  • 按字面意义级联字符串,如”this “ “is “ “string”会被自动转换为this is string。


  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。


  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。


  • Python中的字符串不能改变。


  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。


  • 字符串的截取的语法格式如下:


变量[头下标:尾下标:步长]


字符串的定义:单引号(‘ ‘)、双引号(“   “)、三引号(‘’’ ‘’’ 或 “””  “””)


s = "字符串"


字符串的基本操作


str='Payne'print(str)                 # 输出字符串print(str[0:-1])           # 输出第一个到倒数第二个的所有字符print(str[0])              # 输出字符串第一个字符print(str[2:5])            # 输出从第三个开始到第五个的字符print(str[2:])             # 输出从第三个开始后的所有字符print(str * 2)             # 输出字符串两次print(str + '你好')        # 连接字符串print('------------------------------')
print('hello\n Payne')      # 使用反斜杠(\)+n转义特殊字符print(r'hello\n Payne')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义# 空行函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。


常用格式化字符


%s


string="hello"#%s打印时结果是helloprint "string=%s" % string      # output: string=hello#%2s意思是字符串长度为2,当原字符串的长度超过2时,按原长度打印,所以%2s的打印结果还是helloprint "string=%2s" % string     # output: string=hello#%7s意思是字符串长度为7,当原字符串的长度小于7时,在原字符串左侧补空格,#所以%7s的打印结果是  helloprint "string=%7s" % string     # output: string=  hello#%-7s意思是字符串长度为7,当原字符串的长度小于7时,在原字符串右侧补空格,#所以%-7s的打印结果是  helloprint "string=%-7s!" % string     # output: string=hello  !#%.2s意思是截取字符串的前2个字符,所以%.2s的打印结果是heprint "string=%.2s" % string    # output: string=he#%.7s意思是截取字符串的前7个字符,当原字符串长度小于7时,即是字符串本身,#所以%.7s的打印结果是helloprint "string=%.7s" % string    # output: string=hello#%a.bs这种格式是上面两种格式的综合,首先根据小数点后面的数b截取字符串,#当截取的字符串长度小于a时,还需要在其左侧补空格print "string=%7.2s" % string   # output: string=     heprint "string=%2.7s" % string   # output: string=helloprint "string=%10.7s" % string  # output: string=     hello#还可以用%*.*s来表示精度,两个*的值分别在后面小括号的前两位数值指定print "string=%*.*s" % (7,2,string)      # output: string=     he


%d格式化整数


num=14#%d打印时结果是14print "num=%d" % num            # output: num=14#%1d意思是打印结果为1位整数,当整数的位数超过1位时,按整数原值打印,所以%1d的打印结果还是14print "num=%1d" % num           # output: num=14#%3d意思是打印结果为3位整数,当整数的位数不够3位时,在整数左侧补空格,所以%3d的打印结果是 14print "num=%3d" % num           # output: num= 14#%-3d意思是打印结果为3位整数,当整数的位数不够3位时,在整数右侧补空格,所以%3d的打印结果是14_print "num=%-3d" % num          # output: num=14_#%05d意思是打印结果为5位整数,当整数的位数不够5位时,在整数左侧补0,所以%05d的打印结果是00014print "num=%05d" % num          # output: num=00014#%.3d小数点后面的3意思是打印结果为3位整数,#当整数的位数不够3位时,在整数左侧补0,所以%.3d的打印结果是014print "num=%.3d" % num          # output: num=014#%.0003d小数点后面的0003和3一样,都表示3,意思是打印结果为3位整数,#当整数的位数不够3位时,在整数左侧补0,所以%.3d的打印结果还是014print "num=%.0003d" % num       # output: num=014#%5.3d是两种补齐方式的综合,当整数的位数不够3时,先在左侧补0,还是不够5位时,再在左侧补空格,#规则就是补0优先,最终的长度选数值较大的那个,所以%5.3d的打印结果还是  014print "num=%5.3d" % num         # output: num=  014#%05.3d是两种补齐方式的综合,当整数的位数不够3时,先在左侧补0,还是不够5位时,#由于是05,再在左侧补0,最终的长度选数值较大的那个,所以%05.3d的打印结果还是00014print "num=%05.3d" % num        # output: num=00014#还可以用%*.*d来表示精度,两个*的值分别在后面小括号的前两位数值指定#如下,不过这种方式04就失去补0的功能,只能补空格,只有小数点后面的3才能补0print "num=%*.*d" % (04,3,num)  # output: num= 014


%f


import math#%a.bf,a表示浮点数的打印长度,b表示浮点数小数点后面的精度#只是%f时表示原值,默认是小数点后5位数print "PI=%f" % math.pi             # output: PI=3.141593#只是%9f时,表示打印长度9位数,小数点也占一位,不够左侧补空格print "PI=%9f" % math.pi            # output: PI=_3.141593#只有.没有后面的数字时,表示去掉小数输出整数,03表示不够3位数左侧补0print "PI=%03.f" % math.pi          # output: PI=003#%6.3f表示小数点后面精确到3位,总长度6位数,包括小数点,不够左侧补空格print "PI=%6.3f" % math.pi          # output: PI=_3.142#%-6.3f表示小数点后面精确到3位,总长度6位数,包括小数点,不够右侧补空格print "PI=%-6.3f" % math.pi         # output: PI=3.142_#还可以用%*.*f来表示精度,两个*的值分别在后面小括号的前两位数值指定#如下,不过这种方式06就失去补0的功能,只能补空格print "PI=%*.*f" % (06,3,math.pi)   # output: PI=_3.142


1.%c,格式化字符及其ASCII码(a = 97)
‘%c %c %c’% (97,98,99)
‘a b c’
2.%s,格式化字符串
‘%s’ % ‘hello world’
‘hello world’
3.%d,格式化整数
‘%d + %d = %d’ % (4,5,4+5)
‘4 + 5 = 9’
4.%o,格式化无符号八进制数(十进制的24相当于八进制的30)
‘%o’ % 24
‘30’
在这里插入图片描述
5.%x,格式化无符号十六进制数(十进制的10相当于十六进制的a,十进制的160相当于十六进制的a0)
‘%x’ % 10
‘a’
‘%x’ % 160
‘a0’
在这里插入图片描述
6.%X,格式化无符号十六进制数(大写)
‘%X’ % 10
‘A’
‘%X’ % 160
‘A0’
7.%f,格式化定点数,可指定小数点后的精度(默认精确到6位)
‘%f’ % 1023.567
‘1023.567000’
高阶表示法(小数会四舍五入,1f所以只保留一位小数):
‘{0:.1f}{1}’.format(1023.567,‘GB’)
‘1023.6GB’
8.%e,用科学计数法格式化定点数
‘%e’ % 1023.567
‘1.023567e+03’
9.%E,用科学计数法格式化定点数,作用与%e相同
‘%E’ % 1023.567
‘1.023567E+03’
10.%g,根据值的大小决定使用%f或%e
‘%g’ % 1023.567
‘1023.57’
‘%g’ % 1023.567654658676451
‘1023.57’
‘%g’ % 0.0000000000564546
‘5.64546e-11’
11.%G,根据值的大小决定使用%f或%E,作用与%g相同
‘%G’ % 1023.567
‘1023.57’
‘%G’ % 0.0000000000564546
‘5.64546E-11’
二、格式化操作符辅助说明
12.小数点前面的数5、7等表示总的位数,不够用零在左边补齐,小数点后面的1f’、2 f 等代表小数保留的位数
‘%5.1f’ % 1023.567
‘1023.6’
‘%5.2f’ % 1023.567
‘1023.57’
‘%7.1f’ % 1023.567
’ 1023.6’
‘%7.2f’ % 28.543
’ 28.54’
13.百分号后面的.2e代表科学计数法保留几位小数
‘%.2e’ % 28.543
‘2.85e+01’
14.格式化整数,一共10位,5左边补齐9个零
‘%10d’ % 5
’ 5’
15.在操作符前添加“-”负号,可改变补零的位置,在5的右侧补齐了9个零,例如:
‘%-10d’ % 5
'5 ’
16.在操作符前面添加“+”正号,可以使正数前面显示“+”加号,若是负数则不会显示正号”+“。例如:
‘%+G’ % 0.000564546
‘+0.000564546’
‘%+d’ % -5
‘-5’
17.“#”可以将八进制数用”0o+八进制“拼接表示,可以将十六进制用”0x+十六进制“拼接表示,十进制数不显示符号(10输出还是10)
‘%#o’ % 10
‘0o12’
‘%#x’ % 108
‘0x6c’
‘%#d’ % 10
‘10’
18.在操作符前添加”0“:表示显示的数字前面填充’0‘取代空格
‘%010d’ % 5
‘0000000005’
加负号反向填充
‘%-010d’ % 5
'5 ’


‘%x’ % 10
‘a’
‘%x’ % 160
‘a0’


%X,格式化无符号十六进制数(大写)


‘%X’ % 10
‘A’
‘%X’ % 160
‘A0’


占位符:{}及format


# format## 通过位置data = ["Payne", 20]"Name:{0}, Age:{1}".format(*data)'Name:Payne, Age:20'## 通过关键字data = {"name": "Payne", "age": 20}"Name:{name}, Age:{age}".format(**data)'Name:Payne, Age:20'## 通过对象属性In[1]: class Person(object):
   ...:     def __init__(self, name, age):
   ...:         self.name = name
   ...:         self.age = age
   ...:     def __str__(self):      
   ...:         return "This guy is {self.name}, {self.age} years old.".format(self=self)
   ...:     
In[2]: p = Person("Payne", 20)
In[3]: str(p)
Out[3]: 'This guy is Payne, 20 years old.'# 通过下标data = ["Payne", 20]
In[1]: "{0[0]} is {0[1]} years old.".format(data)
Out[1]: 'Payne is 20 years old.'


前导符


转意:在字符串中当斜杠\遇见以下字符将转化为其他的“值”


\t :tab, \n:换行 \ \ : \等


r"string":非转意


f”{}”:占位符为可运行对象,相当于外面后面追加format填充


下一节将学习


运算符及位运算

目录
相关文章
|
3月前
|
测试技术 索引 Python
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(一)
本文提供了Python接口自动化测试中的编程练习,包括计算器、猜数字、猜拳和九九乘法表等经典问题,涵盖了数据类型、运算、循环、条件控制等基础知识的综合应用。
47 1
|
3月前
|
数据处理 Python
【编程入门必读】Python数据类型大揭秘:掌握这些,让你的代码瞬间高大上!
【8月更文挑战第22天】Python提供多样数据结构支持编程需求。基本数据类型如数值(整型、浮点型、复数)、布尔型、字符串;复合数据类型含列表(有序、可变)、元组(有序、不可变)、字典(键值对)、集合(无序、唯一元素)。还有特殊类型如`NoneType`和`range`。Python内置数据类型转换如`int()`, `float()`, `str()`等方便使用。掌握这些类型有助于编写高效Python代码。
32 0
|
1月前
|
Python
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
本篇将详细介绍Python中的常见数据类型转换方法以及 `NoneType` 的概念。包括如何在整数、浮点数、字符串等不同数据类型之间进行转换,并展示如何使用 `None` 进行初始赋值和处理特殊情况。通过本篇的学习,用户将深入理解如何处理不同类型的数据,并能够在代码中灵活使用 `None` 处理未赋值状态。
57 2
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
|
1月前
|
编译器 数据安全/隐私保护 Python
Python--基本数据类型
【10月更文挑战第4天】
|
1月前
|
存储 Python
python数据类型、debug工具(一)
python数据类型、debug工具(一)
|
1月前
|
Python
[oeasy]python036_数据类型有什么用_type_类型_int_str_查看帮助
本文回顾了Python中`ord()`和`chr()`函数的使用方法,强调了这两个函数互为逆运算:`ord()`通过字符找到对应的序号,`chr()`则通过序号找到对应的字符。文章详细解释了函数参数类型的重要性,即`ord()`需要字符串类型参数,而`chr()`需要整数类型参数。若参数类型错误,则会引发`TypeError`。此外,还介绍了如何使用`type()`函数查询参数类型,并通过示例展示了如何正确使用`ord()`和`chr()`进行转换。最后,强调了在函数调用时正确传递参数类型的重要性。
21 3
|
2月前
|
存储 Java C++
30天拿下Python之数据类型
30天拿下Python之数据类型
36 4
|
1月前
|
存储 程序员 Python
Python编程入门:探索变量和数据类型
【10月更文挑战第8天】本文是针对初学者的Python编程入门指南,重点介绍Python中变量的定义和使用以及不同的数据类型。我们将通过实例来理解基本概念,并展示如何在Python程序中应用这些知识。文章旨在帮助初学者建立扎实的基础,使他们能够更自信地编写Python代码。
|
1月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
31 0
|
1月前
|
存储 程序员 Python
python数据类型、debug工具(二)
python数据类型、debug工具(二)