- 分号的选择问题
- 如何获得帮助信息(两种方式)
- 除法的运行结果是浮点数,如果想丢弃小数部分,需要使用双斜杠
- // 的用法
- %的用法 x%y=x-((x//y)*y)
- 圆整,按照修正后的数据在数值上是否比原数据大,又可分为向上圆整和向下圆整。
https://baike.baidu.com/item/%E5%9C%86%E6%95%B4/452326?fr=aladdin
- //的结果向下圆整
- 10%3=-2 的结果可以由 10//-3=-4 推知(10//-3的结果向下圆整到-4)
- 乘方** ,乘方的优先级比负号要高,所以注意 -32 和(-3)2的区别
- 十六进制前缀ox,八进制0o,二进制0b,都是以0开头,第二个都是字母。
- Python变量没有默认值,使用变量就需要给他赋值。
- 交互式解释器执行的时候,打印表达式的值,赋值语句不是表达式
- 函数print、input,input返回读取的值(字符串的形式,如果想转换为int,需要(int)x等。
- 在交互式解释器中输入if语句,需要按两次回车键才能执行它
if x==1:print("---")
- 内置函数 pow,实参,调用函数,函数调用返回一个值,所以也是表达式。
当函数调用作为语句的时候,将忽略函数的返回值。 -
abs(-10)
,round(2/3)
,round 将浮点数圆整为与之最接近的整数,如果左右同样接近,圆整到偶数。 - 模块是内置函数的拓展,导入模块,import
import math
math.floor(32.9)
工作原理,用import导入模块,再以 module,function的方式使用模块中的函数。
floor 向下圆整
math包中还有 ceil ,向上圆整
- 不指定模块调用函数的方法(需要避免同名函数)
from math import sqrt
- 可以用变量引用函数 ,比如
foo=math.sqrt
,二者就有相同的作用了。 - nan (not a number)
- 处理虚数的包,cmath,计算负数的平方根sqrt(不导入包,Python也支持虚数这种类型)
cmath.sqrt(-1)=1j
-1的平方根是 1j - from turtle import *
-
是注释
- `'和"'各自的用处,\的用处
- 如何字符串中同时包含 单引号和双引号?两种方式(其一,长字符串)
- 两种字符串的拼接
'hello''world'(1)
x+y,'hello'+'world'(2) - 在解释器中
'hello \n world' ->转移字符不会被解释->>repr()[获得合法Python表达式的值,返回指定值的字符串表示]
print("hello \n world") 会解释->str()[将合理的方式将值转换为用户能够看懂的字符串]
注意下面两条语句的区别
print(repr("hello,\nworld"))
print(str("hello \n world))
- 在Python3中,所有的字符串都是 Unicode 字符串
- 三引号(单引号或者双引号)的好处(变成长字符串)
-> 显示多行,避免使用转义字符(换行的,或者对引号的) - 在常规字符串的过程中,\可以用于续写,过程中的\和换行符将被转移忽略。
- 将带转移的字符串变成原始字符串的两种方法
->> \,r'XXX' - 为什么原始字符串不能以单个反斜线结束?(也是r'xxx')的缺点
https://blog.csdn.net/jpch89/article/details/83479625
注意 采用拼接普通字符串的一个解决办法 - P18左上角代码的实现问题???
- byte(不可变)bytearray(可变) 的用法???
b'hello world'
- UTF-32 32位统一编码转换格式(Unicode Transformation Format 32bits)
UTF-8 在进行单字节编码的时候,依然使用ASCII编码,以便与较旧的系统兼容,但是不在这个范围内的字符串,使用多个字节(最多为6个字节)进行编码.UTF-8 是默认的编码
P19 - ASCII和Unicode标准的区别。
len("hello world".encode("UTF-8"))
len("hello world").encode()
- 解码
b'H\xc3\xa6ll\x'.decode()
- 另外的方法
bytes("hello world",encoding="utf-8)
str(b'dsad',encoding="utf-8")
当不知道类似于字符串或者byte的对象属于哪个类的时候采用的方法,具有通用性。
- 特殊的注释来指定使用其他的编码规则来存储源代码
# -*- coding:encoding name -*-
encoding name=utf-8/latin-1 - bytearray
x=bytearray(b"hello")
x[1]=ord(b"u")# (ord来获取其序数值,也就是值,对用户不友好)
x
- 几乎在所有情况下都可使用列表来代替元祖,一种例外的情况时将元祖用作字典键。
-
edward=['dd',24]
jonh=[eward,24]
- 容器:包含其他对象的对象,主要的两种容器是序列(列表和元祖)、映射(字典)
列表和元祖每个元素都有编号,映射中每个元素都有名称。
有一种不是序列也不是映射的容器,就是集合。 - Python中没有字符类型,一个字母也是字符串类型。
- 索引:对字面量的索引,对input返回的索引,对变量的索引
- 切片(左闭右开)-> 对首或者尾的索取-->简写
numbers[3:6]
要注意的一点是:在执行切片操作时,如果第一个索引指定的元素位于第二个索引指定的元素的后面,结果就为空序列
(除非步长为负数)
简写
number[:3]
number[-3:]
number[:]
加上步长:
number[0:10:2]
number[8:3:-1]
number[0:10:-2]->>结果为空
步长为负,从右向左提取元素。
步数为正,从起点移到重终点,步数为负,从终点移到起点。
- 序列+ 相加
- 序列的乘法 *
- None表示什么也没有
用法
sequence=[None] *10
- 布尔运算符 in
'w' in permission(可以是列表或者字符串)
['xx','xxxx'] in YY
用于垃圾邮件过滤器等
- 内置函数 min max len
len(number)(序列)
min(number)
max(number)
min(2,24,4)
- 字符串不容易修改,所以可以使用字符串创立列表
list("hello")
逆操作
seq=['1','2','3']
sep='+'
sep.join(seq)
- 列表的基本操作
修改列表
删除列表
del name[2]
给切片赋值
name[2:]=list('ar')(不考虑长度)
插入新元素
number[1:1]=[2,3,4]
相反操作
number[1:3]=[] del number[1:3]
- 列表的方法
lst.append(4)
lst.clear()
b=a.copy()
x.count(1)
a.extend(b) a=a+b a[len(a):]=b
knight.index('who')
numbers.insert(3,'four') number[3:3]='four'
x.pop() x.pop(3) 唯一一个修改列表并返回非None值的方法
push的代替 append
x.remove("hello")
x.reverse() list(reversed(x))(返回一个迭代器)
x.sort() 就地修改,不返回。 两种方法来取得排序后的(sorted,.copy())
- 关键字参数
x.sort(key=len)
x.sort(reverse=True)【逆序】
- 元祖
一个元素元组的创立
tuple的用法