标识符
- 第一个字符必须是字母表中字母或下划线 _ 。
- 标识符的其他的部分由字母、数字和下划线组成。
- 标识符对大小写敏感。
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.来表示False
orTrue
.布尔类型常在条件分支中作为判断
- 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填充
下一节将学习
运算符及位运算