内容全部摘自一个讲 Python 语法的网站,算是个速查吧。
基础
- 注释:单行注释
#
,多行注释用'''
或"""
包裹。 - 缩进须严格一致,
\
用于换行继续写。 - 字符串不区分单双引号,三引号可表示多行字符串。
- 使用
r"string\n"
可以让\
不转译。 - 字符串取子串用
[首下标:尾下标:步长]
,负数代表倒着数。 - 字符串加法代表连接,乘法代表重复。
print()
默认换行,可指定print(element, end="")
设置不换行。- 导入:
import
、from module import function
、from module import *
。
数据类型
- 类型名首字母大写,支持复数
1+2j
或complex(1, 2)
。 type()
查询变量的类型,isinstance(a, Int)
会判断变量是否为指定类型(子类也算哦)。- 删除对象
del ver_1, ver_2
/
得到浮点数,//
得到整数,**
是乘方。- 列表类型
List["", "", ""]
里啥都能塞。 - 技巧
list = list[-1::-1]
反转一个列表(步长 $-1$)。 - 元组类型
Tuple("", "", "")
内元素不能修改。 - 集合类型
Set{"", "", ""}
或set("")
,可以用-
求差集,用&
求交集,用|
求并集,用^
求不同元素。 - 字典类型
Dictionary["location"] = 1
,可用dictionary.keys()
和dictionary.values()
,构造函数dict([("one", 1), ("two", 2)])
或dict(one = 1, two = 2)
。(感觉就是个map
【逃) - 一些好用的函数:
hex(x)
将整数转为十六进制字符串,oct(x)
将整数转为八进制字符串,ord(x)
将字符转为整数,chr(x)
将整数转为字符,eval(str)
计算字符串中的表达式……
推导式
一个有趣的东西。
- 列表的例子:
[name.upper() for name in names if len(name) > 3]
- 列表的例子:
[i for i in range(30) if i % 3 == 0]
- 字典的例子:
{key: len(key) for key in strings}
- 集合的例子:
{i**2 for i in (1, 2, 3)}
- 集合的例子:
{x for x in "abcdef" if x not in "abc"}
- 元组的例子:
(x for x in range(1, 10))
Python3 太强了,感觉再也不想用 C 了也说不定?明天接着写。
然后就拖到后天了(
f"{}"
字符串前加f
表示允许出现{}
包裹的 Python 表达式。(顺便字符串前加的r
是 raw 的缩写)- 海象运算符
:=
,目前觉得是在表达式中赋值,不太清楚到底怎么个用法。 - Python 可以直接用关键字
and
、or
、not
,如a and b
。 - 还有:
in
和not in
以及is
和is not
(引用变量是否为同一个)。 id()
函数用于获取对象内存地址。
数学相关
(使用需要如 math.modf(x)
)
1 | import math |
基本函数 abs(x)
、ceil(x)
、floor(x)
、exp(x)
、fabs(x)
、log(x)
、log10(x)
、max(x1, x2, ... , xn)
、min(x1, x2, ... , xn)
、pow(x, y)
、round(x[, n])
、sqrt(x)
。
modf(x)
用于返回整数部分和小数部分。
hypot(x, y)
用于返回 $\sqrt{x^2+y^2}$。
degrees(x)
弧度转角度,radians(x)
角度转弧度。
数学常量 pi
和 e
。
1 | import random |
choice(seq)
在序列中随机挑选,randrange([start, ]stop[, step])
,random()
生成 $[0,1)$ 范围内的随机数,seed([x])
,suffle(seq)
将序列打乱,uniform(x, y)
随机生成 $[x, y]$ 范围内的实数。
“字符串”到“集合”这几节先鸽着。
分支
1 | if 表达式: |
循环
1 | while 表达式: |
压行:while (not yahangdamie): print("压行啦!!!")
1 | for x in ["C", "C++", "Python"]: |
函数
1 | def function0(): |
- 传参时形式参数和实际参数指向同一个 $id$,内容改变后指向不同 $id$(用
id(x)
查看)。 - 函数内可变对象(如列表)改变会影响函数外。
- 可以设置参数默认值
function0(author = "whz0325")
,可以在调用时指定参数function0(name = "whz", id = 325)
。
不定长参数:
1 | def test(*tmp): # * 传入元组 |
也可以 def test2(a, b, *, c)
。
匿名函数:
1 | func = lambda x, y: x + y |
字符串
[left, right]
取子串,下标 $0$ 开始,左开右闭,可省略某项,负数从 $-1$ 开始倒数。- C 语言中的转义字符也可以用:
\175
表示八进制数,\x6a
表示十六进制数。 - 获取字符串的长度:
len(s)
。
格式化:
1 | name = "whz0325" |
%e
为科学计数法形式的浮点数,%o
为八进制,%x
为十六进制(%X
为大写)。
1 | pi = 3.1415926 |
函数:
1 | s = "whz0325" |
列表
- 像数组一样的东西,可以搞二维列表
['a', 'b', 'c'].append('d')
。del list[-2]
删除倒数第二个元素(可以删除中间元素)。max(list)
和min(list)
返回列表最值。
排序和其它函数明天更。
迭代器
坑着。