整理草稿时很久以前的笔记,发出来吧。
序章
1、使用IDLE学习python
2、配套资源:鱼C论坛
3、在IDLE中输入dir(__ builtins __)(字母和下划线之间没有空格)
变量和字符串
字符串
1、单引号和双引号都可以表示字符串。但是文本两边的单引号和双引号都应该是成双成对的。eg
print("Let's go!")
print(‘’ "Let's go!" ‘’)
是正确的的,但是下边这种就是错误的
print('Let's go!')
既有单引号又有双引号的时候就用转义字符 \ 。
2、sep=“,”, end=“!”,sep表示两个字符串之间以什么分割,end表示以什么结尾。
print("你好", name, sep=",", end="!")
3、打印多行字符串,字符串需要用三个三个单引号或者三个双引号括起来。
精确地计算浮点数
import decimal
a = decimal.Decimal('0.1')
b = decimal.Decimal('0.3)
print(a+b)
>>>0.3
复数
1 + 2j,就是数学概念上的复数
x = 1 + 2j
x.real
>>>1.0
x.imag
>>>2.0
操作符
地板除,就是如果除不尽的话,去比这个数小的第一个整数。
complex(),里边传入的字符串不能有空格,负责会报错。
power(a, b, c)支持传入三个参数,意义a**b % c (a的幂次方除以c的余数)
布尔类型
bool():函数,可以直接返回括号里的内容的True 或 False
字符串只有"“空是假,就算只有一个空格” "也是True;
值为0的都是False,不管是0、0.0、0j、Decimal(0),Fraction(0,1);
逻辑运算符
python中任何对象都能直接进行真值测试(测试该对象的布尔类型值为True或者False),用于 if 或者 while 语句的条件判断,也可以作为布尔逻辑运算符的操作数
比如
再比如
这是因为,and
和 or
都是遵循短路逻辑的。
短路逻辑的核心思想是:从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值。
举个例子:3 and 4,首先3是True,and 需要判断,两个都是真,才是真,所有还要去判断4,那最后就返回4喽;0 or 3,首先0是false,但是or要两个都是false,才能最终返回false,于是还要判断3,3是真,所以返回3喽。
逻辑运算符的优先级
工作的时候记不住,加个小括号就行了,但是学生嘛,还是可以记一下的,因为是考点。
这里的优先级数值越小,代表一起出现的时候它后算
分支和循环
if分支
条件成立时执行的语句 if condition else 条件不成立时的语句
while
while语句也可以和else语句一起使用
我的理解就是:如果没有break的话,else语句就是正常退出while循环之后都会执行,但是如果有break,并且执行了,那么else语句也直接被跳过了,比如上图中的这个例子。
for
for 变量 in 可迭代对象:
statement(s)
注意这个可迭代对象,比如字符串是可迭代对象,但是整数不是。那么要怎么实现一个从1加到5的功能呢?:range(),它的参数都只能是整形。
range(stop),从0到 stop-1
range(start, stop),从start到stop-1
range(start, stop, step),从start到stop-1,跨度为step,
列表(可以容纳多种不同类型的对象)
增
只增加一个元素:列表名.append()
增加多个元素:列表名.extends([ , ])
也可以通过切片实现:
在任意位置插入元素:.insert(要插入的下标,要插入的元素)
删
.remove(“存在的元素”),如果存在多个相同的元素,删除第一个
.pop(要删除的元素的下标)
.clear() 清空列表
改
查
下边这个图里的都是浅拷贝啦:
引入一个运算符:is 运算符
用于检验两个元素是不是指向同一个位置。
说一下python创建多维列表:
A = [0] * 3 #这是一维列表for i in range(3): # 下边这样就创建除了一个3*3的二维列表
A[i] = [0] * 3
千万不能B= [[0] * 3] * 3,这种形式创建,要不然三行就指向同一个地址了。
浅拷贝与深拷贝
浅拷贝:
x.copy和copy.copy(x)效果是一样的。
多维列表处理不了,是因为copy,只处理了外层,内层还是指向的原来的引用。那怎么办嘞?–深拷贝y = copy.deepcopy(x) (多维列表也适用)
列表推导式
[expression for target in iterable (if condition)]
也可以嵌套
举个例子,比如有一个元素都是整数的列表,你想把列表里边的元素都乘以2,怎么做?
方法一:
方法二: