参考视频:https://www.bjsxt.com/down/8468.html
以下操作均在终端中
-
字符串换行,使用“\”。示例如下:
1、使用一般思想写一个换行的字符换,写一个引号,直接回车,看看会出现什么
>>>str = "wozaizheli
File "<stdin>", line 1
str = "wozaizheli
^
SyntaxError: EOL while scanning string literal #语法错误:扫描字符串文本时下线
2、使用符合python语法的
>>> str = "wozaizheli\ #在想换行的位置添加斜杠符号,不可添加另一个双引号
... xuexi\
... python" #在结束时添加另外一个双引号
>>> str #打印str字符串
'wozaizhelixuexipython'
- 对python的一个表述:
对象,python中,一切皆是对象。每个对象由:标识(identity)、类型(type)、value(值)组成。
对象的本质是一个内存块,拥有特定的值,支持特定类型的相关操作。以 a = 3为例,了解它具体的内存结构,如下:
定义的变量存在栈中,但是它的实体存在堆中,两者的联系就是标识id。学习语言,首先需要清楚它的内存结构,那id、type、value是否可以让我们在python’中肉眼看到呢?当然是可以的,不过value值是不可以查询的,因为是自己给的,其它可以通过以下操作进行查阅:
>>> a = 3 #定义a = 3
>>> id(a) #查询a的id
4354095104
>>> type(a) #查询类型
<class 'int'>
>>> value(a) #查询值,不过这个不能被查询
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'value' is not defined
标识符的作用类似于变量,它可以用于变量、函数、类、模块的名称。区分大小写,一般组成为:字母、数字、下划线,但是不能以数字开头,不能使用关键字。删除一个变量可以使用del 标识符,例如:
>>> a = 5 #定义一个变量a,给它赋值为5
>>> a #查看a的值
5
>>> del a #删除a
>>> a #查看a的值
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined #显示a没有被定义
删除变量后,是删除了在栈中的数据,并未删除堆中的数据,如果删除了栈中的数据,很大可能是这个数据已经不能用了,那我们在后续已经不会使用这些数据,久而久之,python自己的垃圾回收机制就会回收这些数据,因为空间本来就只有一点,还要供后来者使用。
- 链式赋值,一个神奇的赋值方法,示例如下:
>>> a = b = 5 #给a与b同时赋值为5
>>> print(a, b) #打印a与b的值
5 5
>>> a, b = 3, 4 #给a赋值为3,给b赋值为4
>>> print(a, b)
3 4
>>> a,b = 5, 'string' #给a与b同时赋值,但是值得类型不相同
>>> print(a,b)
5 string
- 数字之间的运算符,+、—、x、/ (浮点数除法)、 // (整数除法)、% 取模值、 ** 幂值。示例如下:
>>> a = 3
>>> a = a + 5 #加法
>>> a #打印
8
>>> a = a - 1 #减法
>>> a
7
>>> a = a * 3 #乘法
>>> a #打印
21
>>> a = a / 4 #商为浮点数的除法
>>> a
5.25
>>> a = a // 2 #商为整数的除法
>>> a
2.0
>>> a ** 6 #幂级数
64.0
>>> divmod(64,5) #可以同时求出商和余数的函数,结果的第一位是商,第二位是余数
(12, 4)
8进制与16进制的表示方法,以及使用int()、float(),进行类型转换。示例如下:
>>> 0o34 #以0o开头为8进制,8进制中没有大于等于8的数字,结果为10进制
28
>>> 0x2475 #以0X或0x开头的为16进制的标志,它的范围为0 — f,结果为10进制
9333
>>> 0xad
173
>>> int(2.3883) #将浮点数转换为整型数字,使用int()
2
>>> int(2e9) #e是科学计数法的写法,2e9的含义就是2后面9个0
2000000000
>>> int(9.58)
9
>>> float(3) #将float括号里面的数转换为浮点型,结果为浮点型
3.0
>>> float(89e2)
8900.0
>>> round(4.55) #四舍五入的写法
5
>>> round(4.5)
4
>>> round(4.4) #大于等于5开始进位,小于等于4就不进位
4
- 画出一个方形的代码
python中,有一个turtle的包,它可以完成图形的绘画工作,较简单,在这里我使用最简单的饿一种方式绘画一个方形
>>> import turtle #导入画图所需要的包turtle
>>> x1, y1 = 100, 100 #定义8个变量,成对的定义是为了已做表的形式定义点,防止出错
>>> x2, y2 = 100, -200
>>> x3, y3 = -200, -200
>>> x4, y4 = -200, 100
>>> turtle.color("green") #指定画图过程中画笔的颜色,这里设置为绿色
>>> turtle.up() #因为在画图时,是从中心点开始,为了让中心点距离x1,y1坐标没有痕迹,使用up()函数,抬笔开始画,但是没有痕迹
>>> turtle.goto(x1,y1) #使画笔到达第一个坐标点
>>> turtle.pendown() #放下?
>>> turtle.goto(x2, y2) #将画笔从上一个坐标出发,去往x2,y2坐标
>>> turtle.goto(x3, y3) #从上一个坐标画到x3,y3
>>> turtle.goto(x4, y4) #从上一个坐标画到x4,y4,此时画笔经过了四个点,画了三条线,是一个开环结构
>>> turtle.goto(x1, y1) #从上一个坐标画到x1,y1,是它成为一个闭环结构
成果如下图所示:
- 布尔值与一些运算符
在python2中,没有true和false的说法,在python3中才出现false和true的说法;
一些常用的算数运算符:等于号 == 、不等号 != 、大于 > 、小于 < 、大于等于 >= 、小于等于 <=
逻辑运算符:或 or、与 and 、非 not
注意:or这里有一个短路的运算逻辑,例如:x or y,当x为真时,y的表达式是不运算,以下是一些简单的例子
>>> 1 == 2
False
>>> 2 == 2
True
>>> 2 != 3
True
>>> 5 > 2
True
>>> 5 > 6
False
>>> 5 < 4
False
>>> 1 > 2 or 1 == 1
True
>>> 1 > 0 or 1 == 2
True
>>> 1 == 2 and 1 == 1
False
>>> not a #not x 意思相当于 if x is false, then True, else False
False
- 判断相等的两个运算符, is 、 ==
- is 是判断两个标识符是不是引用同一个对象
- is not 是判断两个标识符是不是引用不同对象
- == 是用于判断引用变量应用对象的值是否相同,默认调用对象的_eq_()方法
- 在命令行中缓存数据范围是[-5, 256],其余数据不会缓存。缓存是指给这些数据配有独立的堆栈区间
以下做简单的示例:
>>> a = -5
>>> b = -5
>>> a == b
True
>>> a is b
True
>>> c = -6
>>> d = -6
>>> c == d
True
>>> c is d
False
>>> id(a),id(b)
(4340131584, 4340131584)
>>> id(c), id(d)
(4349962032, 4349960944)
>>> a is not b
False
>>> e, f = 256, 256
>>> e == f
True
>>> e is f
True
>>> g, h = 257, 257
>>> g == h
True
>>> g is h
True
>>> id(g), id(h)
(4349961264, 4349961264)
>>> g, h = 258, 258
>>> g == h
True
>>> g is h
True
可能由于环境的不一,我在此环境中的缓存范围是[-5, 任意整数],python3是使用Unicode编码,即16位表示一个字符,汉字与字符所占字符数相同;
- 引号创建字符串
可以使用单引号或者双引号或者连续三个单引号与三个双引号创建字符串,如:a = 'abc',b = 'txt', c = "I am a teacher ! ",字符串是不可变的。如下为简单的示例:
>>> str = 'hello, kitty ! '
>>> str
'hello, kitty ! '
>>> str1 = "I am a teacher !"
>>> str1
'I am a teacher !'
>>> str2 = '''I am an engineer ! '''
>>> str2
'I am an engineer ! '
>>> str3 = """Spring is beautiful weather!"""
>>> str3
'Spring is beautiful weather!'
关于字符串应用的一些函数
>>> str = 'aa''bb' #拼接字符串
>>> str
'aabb'
>>> str = "aaaa" + "bbbbc" #拼接字符串
>>> str
'aaaabbbbc'
>>> str1 = str * 3 #复制字符串
>>> str1
'aaaabbbbcaaaabbbbcaaaabbbbc'
>>> str2 = "sgey\ #字符串换行 \
... sff\
... ddsdsd"
>>> str2
'sgeysffddsdsd'