愤鸟的Python3入门笔记(Day1)
注:根据廖的教程学习。本文为个人向笔记,仅供参考。 Day1指第几天学的内容,不指本文写完的时间。
0.环境
WSL(Ubuntu20.4,后称WSL)+Python3.8.X(后称Py3)+Emacs
1.输入输出
Py3的常用输入方式有: a=input()
需要注意的是,Py3的输入格式默认为字符串。如需使用数字,则需进行转换。典型的转换方式如下:
a=input()
try:
a=int(a)
except:
print("ERROR\b")
常用输出方式是: print()
其支持使用占位符,格式化方式和C++一致,只是代码具体格式和C++有区别,例子为: print("Do you %s Mi %di?"%("like",4))
其输出为Do you like Mi 4i?
.
2.变量、数据类型
Py3的变量类型确定但不固定。基本数据类型大体和C一致,只是不限定所用字节数,并在其基础上增加了一个类型:空值(None)。在Py3里,None不等于0.
多行内容可用如下方式表示:
print('''wdnmd
A1高闪
我起了,一枪秒了,有什么好说的?''')
Py3的高级数据类型有:
- 列表(list),类似于C++的数组/链表。包含append()、pop()、insert()等方法。
- 元组(tuple),即不能修改的列表。
- 字典(dict),类似C++里的
std::map
。包含pop()、get()等方法。 - 集合(set),类似于C++里的
std::set
。包含add()、remove()等方法。
一些注意事项
- 元组中的子列表仍可被修改,因为元组中存储的是指向子列表的指针。
- 字符串类型是不可变对象,修改的原理大概是复制、修改、赋值。
3.一些基本语法
条件判断
if (a>0 and a<=10):
pass
elif (a>10 or a<0):
pass
else:
pass
循环
迭代器循环(类C++中for循环)
a=0
for x in num:
a=a+x
while循环(类C++中while循环)
while n>0:
n=n-1
break
continue
可用, pass
为占位符。
4.函数
定义函数
def fun(x):
pass
函数返回值
Py3的函数仅返回单一值,类型自动指定。
“多值”以元组(tuple)形式返回。
函数参数
位置、默认参数
位置参数与C++中函数的参数类似,默认参数为带默认值的参数。无默认值的参数必选。
注意:默认参数必须指向不可变对象(含None)
可变参数
可变参数可以使函数接受数量不定的参数。
定义方式def fun(*num)
。该参数传入一个元组(tuple)。
调用方式fun(1,2,3)
或
nums=[1,2,3]
fun(*nums)
关键字参数
关键字参数与可变参数类似,可接受数量不定的参数。
定义方式def fun(**num)
。该参数传入一个字典(dict)。
调用方式fun(a=1,b="2",c=false)
命名关键字参数
指定了关键字参数的数量。
定义方式def fun(a,*,size,color)
调用方式fun(1,size=32,color="light_blue")
顺序
必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
建议参数组合中种类数尽量少。
递归
类C++中函数递归。注意栈。
切片
从顺序存储的数据类型的变量中取一段,作为同类型新变量的值。
例如:
L[0:3] #从L中取索引[0,3)的元素
L[-2:-1] #从L中取索引[-2,-1)的元素,即倒数第二个元素
L[:] #复制整个变量
L[::2] #每2个元素取一个
编码
对于单字符,可通过ord()
函数获取字符的整数表示,通过chr()
函数把编码转为对应字符。
对于字符串,可通过encode()
方法编码为指定的bytes,如"このはな綺譚".encode("utf-8")
;可通过decode()
方法解码字节,如b"\xe3\x81\x93\xe3\x81\xae\xe3\x81\xaf\xe3\x81\xaa\xe7\xb6\xba\xe8\xad\x9a".decode("utf-8")
在编码时,可传入errors='ignore'
忽略错误的字节。
封面pixiv id:79940161