- Python知识结构
- 变量与对象
- 数字和字符串
- 1.数字
- ①整数、布尔型
- ②浮点数(小数)、复数
- 2.字符串
- 3.字符串操作函数
在接触代码之前我们先来简单地了解一下python全貌,从更具体的视角来看,python程序可以分解成模块、语句、表达式以及对象;
- 程序由模块构成
- 模块包含语句
- 语句包含表达式
- 表达式创建并处理对象
如果你使用过C++或者JAVA,在使用前都需要声明一个对象(或者叫做数据结构),你需要去部署内存结构,管理内存分配。
例如创建变量,需要声明,给定变量类型等。这称之为静态类型,是因为编译器会在编译的时候知道每个变量的类型;而python各变量没有严格的类型限制,而且不需要声明。
python内置对象
| 对象类型 | 构造示例 |
|---|---|
| 数字 | 1234,3.1415,-5,3+4j,Ob0111 |
| 字符串 | ‘Bob’,‘1234’, ‘1.234’,‘Bob’s’ |
| 列表 | [1,1.2,‘a’,‘b’],list(range(10)) |
| 字典 | {‘A’:10,‘B’:12.1},dict(hours=10) |
| 元组 | (‘Bob’,‘1234’),(1,2), tuple(‘spam’) |
| 文件 | open(‘test.txt’),open(r’C:userdesktoptext.txt) |
| 集合 | {A,B,C},set(‘abc’) |
| 其他核心类型 | 类型,None,布尔型 |
| 程序单元类型 | 函数,模块,类 |
| python实现相关类型 | 已编译代码、调用栈跟踪 |
在编辑器中,我们可以直接使用赋值运算符 ‘=’ 来创建变量;
x = 71 y = 'love'
第一行我们创建了一个int型对象,该对象名称是x;
第二行我们创建了一个str型对象名称是y;
x = 71 y = 'love' print(id(x)) print(id(y))
程序运行结果:
4302866944 140629309137616 程序运行结束
python变量命名规则:
- 变量名称由ASCII字符、数字和下划线(_)组成;
- 变量的名称必须以字符开头,且区分大小写,比如(rowan、Rowan、roWan就是三个不同的变量);
- python变量名不可与python任何关键字名称相同,也不可与python任何内置常量(None、True、False)想用。
python关键字:
python使用动态数据类型:
1. 可以把任何对象赋值给任何变量;
x = 71 x = 'love'
给变量赋值称为绑定,实际上是把名称绑到对象上。如果给一个已经存在的对象赋一个新对象,则称为对该名称进行重新绑定。
对象一旦没有具体的名称绑定,对象所占用的空间就会由计算机垃圾收集程序予以处理,将其从内存中删除,释放内存空间。
当然,python也可以同时给多个变量赋值;
x, y, z = 1, 2, 3 str_1, str_2, str_3 = "A", "B", "C"
2. python动态类型是强类型的:python不允许在不兼容的类型之间进行运算
a = 71 b = 'love' print(a+b)
运行结果:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
a = 71 b = 8.5 print(a+b)
运行结果:79.5
这是由于python提供了其他语言也会用到的自动类型转换技术,将a转换成浮点数float。
数字和字符串python提供了数个数字类型和两种字符串类型。所有的这些类型的共同点在于,它们都是不可变的。
1.数字数字有4种类型:int(整数)、布尔型(bool)、float(浮点数)、complex(复数)。我们可以使用内置的type函数来查看变量所指的对象类型。
①整数、布尔型python提供了三种整数类型:整数、布尔型。布尔型只有两个值,即True和False,在用作数字时,亦可以看做 1 和 0。
#定义整型变量 x, y, z = 1, 2, 3
python支持常见的数字运算符,包括 +、 -、 、 /、 %以及增量运算符 +=、-=、= 和%=,同时还有 ** 运算符,表示数字的平方,//运算符表示整除。
print(2 + 2) # 加法 print(3 - 2) # 减法 print(2 * 3) # 乘法 print(3 / 2) # 除法, 得到一个浮点数 print(2 // 4) # 除法, 得到一个整数 print(3 % 2) # 取余 print(3 ** 2) # 乘方
布尔值运算:
True and False # False True and True # True False and True # False False or True # True False and False # False True ^ False # True True ^ True # False②浮点数(小数)、复数
任何带有小数点的数字都是浮点数,当我们把浮点数和整数混合的时候,我们会得到一个浮点数。
num = 3.1415926
复数(complex)是由实数部分和虚数部分构成的,可以用a + bj或者complex(a, b)表示,复数的实部a和虚部b都是浮点数。
c = 5.4 + 0.8j
我们可以使用内置的type函数来查看变量所指的对象类型:
num = 3.1415926 c = 5.4 + 0.8j print(type(num)) print(type(c))
程序运行结果2.字符串
字符串是由一系列的字符组成的,是由单引号 ‘ 或双引号 ” 括起来的,同时使用反斜杠 转义特殊字符。
双引号和单引号的自由转换,可以让你在引号中套用引号更方便。
str_1 = 'a' str_2 = '1' str_3 = "This is a string."
如果需要再字符串中包含特殊字符,可以使用反斜杠“ ”进行转义。
"He said "No you don't! " again." 'What 's up with him?'
由于双引号的界限,无需对字符串中的单引号进行转义,同时也不必对由单引号界定的字符串中的双引号进行转义。
对于多行字符串,我们可以使用三引号来进行表示。
''' This is a string. He said "No you don't! " again. What 's up with him? ''' """ This is a string. He said "No you don't! " again. What 's up with him? """
python字符串是字符的有序集合,可以通过位置索引方位字符串中的单个字符,其中,第一个字符的索引值为0。同样,也可以从字符串的末尾访问每个字符,最后一个字符的索引值是-1。
phrase = "The red balloon" print(phrase[0],phrase[5],phrase[-1])
运行结果 T e n
python的序列是支持切片的,这意味着我们可以从一个序列中复制出多个子序列。一个切片由一个、两个或者三个相对独立的部分。开始(默认从零开始)、结束(默认以序列长度为结束)和间隔数。切片会从索引值开始并包含开始字符,但是不包含结束索引值处的字符。
phrase = "The red balloon" print(phrase[0:3]) print(phrase[-3:]) print(phrase[4:7])
运行结果 The oon red3.字符串操作函数
除了可以通过索引获取字符,我们也可以通过函数来获得索引;例如find()函数。
phrase = "The red balloon"
print(len(phrase))
print(phrase.find('r'))
print(phrase.index('e'))
输出结果: 15 4 2
字符串操作方法和函数:
为了获得格式化操作,可以使用二员运算符 “ % ” 。
phrase = "The are %i balloons" %5 print(phrase)
输出: The are 5 balloons
字符串中的 %i 被替换为数字5。格式化字符串中 % 后面的字母表示对象的类型,用 %i 表示这是一个整数。
phrase = "The %i %s cost %f dollars" %(3,"fish",17.5) print(phrase)
输出: The 3 fish cost 17.500000 dollars
字符串格式化符号:



