python学习笔记

整理草稿时很久以前的笔记,发出来吧。

序章

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 语句的条件判断,也可以作为布尔逻辑运算符的操作数

比如
在这里插入图片描述
再比如
在这里插入图片描述
这是因为,andor 都是遵循短路逻辑的。
短路逻辑的核心思想是:从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值。
举个例子: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,怎么做?
方法一:
在这里插入图片描述
方法二:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 18
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值