965-Python-Learning-Repo/note.md
2023-05-10 11:38:53 +08:00

164 lines
7.5 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

eval()函数可对括号中的含变量表达式做运算
0 1 2 3 4 5 6 :正向递增序号
" 1 2 3 4 5 "
-7 -6 -5 -4 -3 -2 -1 :反向递减序号
使用[]获取字符串中一个或多个字符
str[0]获取第一个字 str[0:2]获取前两个字 str[0:-1]字符串去掉末位后输出 str[1:]去首位
['F', 'f', '℉'] : 列表类型数据
print("{:.2f}".format(value))
:.2f表示填充变量取到小数点后两位
{}表示变量填充位置
转义字符\可以转义很多字符,比如\n表示换行\t表示制表符字符\本身也要转义,所以\\表示的字符就是\
如果字符串里面有很多字符都需要转义,就需要加很多\为了简化Python还允许用r''表示''内部的字符串默认不转义
如果字符串内部有很多换行,用\n写在一行里不好阅读为了简化Python允许用''''''的格式表示多行内容
def(a, *b)a表示第一变量*b表示后面全部变量
常见的占位符有:
占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%
另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}
'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'
最后一种格式化字符串的方法是使用以f开头的字符串称之为f-string它和普通字符串不同之处在于字符串如果包含{xxx},就会以对应的变量替换:
r = 2.5
s = 3.14 * r ** 2
print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62
上述代码中,{r}被变量r的值替换{s:.2f}被变量s的值替换并且:后面的.2f指定了格式化参数(即保留两位小数),因此,{s:.2f}的替换结果是19.62
可以使用 Turtle.setup(width, height, startx, starty) 函数来设置启动Turtle绘图窗口的位置和大小以下是参数解释
widthTurtle 绘图窗口的宽度。
heightTurtle 绘图窗口的宽度
startxTurtle 绘图窗口距显示器左侧的距离
startyTurtle 绘图窗口距显示器顶部的距离
turtle.goto(x, y):指定 x 和 y 的值海龟将会到达坐标为x, y的位置。
turtle.forward(distance):控制海龟前进 distance 个单位像素的距离。forwad 可以简写为 fd
即 turtle.forward(distance) 和 turtle.fd(distance) 的效果是一样的。
turtle.backward(distance):控制海龟后退 distance 个单位像素的距离。backward可以简写为
即 turtle.backward(distance) 和 turtle.bk(distance) 的效果是一样的。
turtle.circle(r,angle):以海龟当前位置,左侧的某一个点为圆心,半径为 r 的距离,
画一个角度值为angle 的弧形。如果没有指定 angle 的值则默认为360度也就是画一个圆。r 和 angle 的值可以为负数,意为反方向。注意,顺时针旋转的角度度数值为负数,逆时针的为正数。
turtle建立了一个空间坐标体系那么在空间坐标中海龟行进的方向也有一个角度同样分为绝对角度和海龟角度。
对于绝对角度来讲绝对坐标的x正轴表示0度或360度y正轴表示90度或-270度x负轴表示180度或-180度y负轴表示270度或-90度。
相关的函数有:
turtle.seth(angle):设置 angel 的值用于改变海龟行进方向,只改变方向不行进。
turtle.left(angle):让海龟向左改变 angle 个角度
turtle.right(angle):让海龟向右改变 angle 个角度
Turtle常用函数
5.1 画笔控制函数
turtle.penup() 或者 turtle.pu() 或者 turtle.up():抬笔,移动时不绘图
turtle.pendown() 或者 turtle.pd() 或者 turtle.down():落笔,移动时绘图
turtle.pensize(width):设置画笔尺寸
turtle.width(width):画笔宽度
turtle.pencolor(*args)如果不给参数则返回当前画笔颜色给出参数则是设定画笔颜色。设置颜色有三种方式的参数pencolor(colorstring)、pencolor((r,g,b))和pencolor(r,g,b)
5.2 运动控制函数
turtle.forward(distance) 或者 turtle.fd(distance)前进distance像素
turtle.backward(distance) 或者 turtle.bk(distance) 或者 turtle.back(distance)后退distance像素
turtle.circle(r,angle)以画笔海龟左侧为圆心半径为r像素画angle度的圆形。注意海龟方向同时发生angle度变化
turtle.goto(x,y)、setpos(x,y)、setposition(x,y):由当前坐标前往指定坐标,这里使用绝对坐标,但画笔方向不会改变
5.3 方向控制函数
turtle.setheading(angle) 或者 turtle.seth(angle):以绝对角度改变方向
turtle.left(angle) 或者 turtle.lt(angle):以海龟角度向左改变方向
turtle.right(angle) 或者 turtle.rt(angle):以海龟角度向右改变方向
Python列表函数&方法
Python包含以下函数:
序号 函数
1 cmp(list1, list2)
比较两个列表的元素
2 len(list)
列表元素个数
3 max(list)
返回列表元素最大值
4 min(list)
返回列表元素最小值
5 list(seq)
将元组转换为列表
Python包含以下方法:
序号 方法
1 list.append(obj)
在列表末尾添加新的对象
2 list.count(obj)
统计某个元素在列表中出现的次数
3 list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj)
将对象插入列表
6 list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj)
移除列表中某个值的第一个匹配项
8 list.reverse()
反向列表中元素
9 list.sort(cmp=None, key=None, reverse=False)
对原列表进行排序
s = input("") # 输入一个字符串
ls = []
for c in s:
ls.append(str(ord(str(c))))
print(','.join(ls))
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
set
set和dict类似也是一组key的集合但不存储value。由于key不能重复所以在set中没有重复的key。
要创建一个set需要提供一个list作为输入集合
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
注意,传入的参数[1, 2, 3]是一个list而显示的{1, 2, 3}只是告诉你这个set内部有123这3个元素显示的顺序也不表示set是有序的。。
重复元素在set中自动被过滤
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
通过add(key)方法可以添加元素到set中可以重复添加但不会有效果
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
通过remove(key)方法可以删除元素:
>>> s.remove(4)
>>> s
{1, 2, 3}
set可以看成数学意义上的无序和无重复元素的集合因此两个set可以做数学意义上的交集、并集等操作
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
set和dict的唯一区别仅在于没有存储对应的value但是set的原理和dict一样所以同样不可以放入可变对象因为无法判断两个可变对象是否相等也就无法保证set内部“不会有重复元素”。试试把list放入set看看是否会报错。