学习视频:B站小甲鱼《零基础入门学习Python》
关键字:
import
、type()
、isinstant()
- 算术操作符
+
-
*
/
%
**
//
优先级elif
、if
、else
、for
、while
- 断言
assert
、break
和continue
- 列表:向列表添加元素:
append()
、extend()
、insert()
、从列表中获取元素、从列表中删除元素:remove()
、del
语句、pop()
、列表分片(slice
):一次性获得多个元素- 列表的一些常用操作符:比较(
>
>=
<
<=
)、逻辑(and
or
not
)、连接(+
)、重复(*
)、成员(in
not in
)BIF
:range()
、count()
、index()
、reverse()
、sort()
1、import
:载入一个类
2、获得关于变量的类型的信息type()
或isinstant()
>>> a = '520'
>>> type(a)
<class 'int'>
>>> a = '小甲鱼'
>>> isinstance(a,str) # isinstance('520',str)
True
isinstance(a,str)
中第一个参数是要判断的数据,第二个参数是判断是否为字符串,最终输出位0/1
3、算术操作符 +
-
*
/
%
**
//
- **幂运算符,如
4^2=16
- // 除法,如
4//3 = 1
- / 也是除法,如
4/3 = 1.3333333
4、优先级
优先级如下:
幂运算
**
正负号
+
-
算术操作符
*
/
//
+
-
比较操作符
<
<=
>
>=
==
!=
逻辑运算符
not
and
or
>>> -3 ** 2
-9
>>> -(3**2)
-9
>>> 3 ** -2
0.1111111111111111
>>> 3 ** (-2)
0.1111111111111111
5、打飞机框架
加载背景音乐
播放背景音乐(设置单曲循环)
我方飞机诞生
interval = 0 #初始化间隔
while True:
if 用户是否点击了关闭按钮:
退出程序
interval += 1
if interval == 50:
interval = 0
小飞机诞生
小飞机移动一个位置
屏幕刷新(代码运行了,但是界面上的飞机没有动)
if 用户鼠标产生移动:
我方飞机中心位置 = 用户鼠标位置
屏幕刷新
if 我方飞机与小飞机发生肢体撞击:
我方挂,播放背景音乐
修改我方飞机图案
打印“Game Over!”
停止背景音乐,最好淡出
6、elif
Pyhton
中100 >= score >=90
是成立的。
score = int(input('请输入一个分数:'))
if 100 >= score >= 90:
print('A')
elif 90 > score >= 80:
print('B')
elif 80 > score >= 60:
print('C')
elif 60 > score >= 0:
print('D')
else:
print("输入错误!")
7、条件表达式(三元操作符)
x,y = 4,5
if x < y:
small = x
else:
small = y
例子可以改进为:
small = x if x<y else y
语法:
small
=
x
if
条件
else
y
当
条件
为真的时候,samll = x
8、断言assert
当关键字assert后面的条件为假时,程序自动崩溃并抛出
AssertionError
的异常。
用法:
用它在程序中置入检查点,当要确保程序中某个条件一定为真才能让程序正常工作。
9、while
循环
while 条件: #条件为真进入循环,为假退出循环
循环体
10、for
循环
for 目标 in 表达式:
循环体
例如:
>>> favorite = 'fishC'
>>> for i in favorite:
print(i, end=' ')
f i s h C
>>> member = ['小甲鱼','小布丁','黑夜','迷途','怡静']
>>> for each in member:
print(each,len(each))
小甲鱼 3
小布丁 3
黑夜 2
迷途 2
怡静 2
11、BIF:range()
函数
语法:
range([start,] stop[,step=1])
[ ]
里面的参数可选step=1
表示第三个参数的默认值是1
,也可以是其他值,表示步长。range
这个BIF
的作用是生成一个从start
参数的值开始到stop
参数的值结束的数字序列。
如start=1
,stop=5
,输出1,2,3,4
- 注意:不输出5
举例:
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(2,7):
print(i)
2
3
4
5
6
改变step
参数:
>>> for i in range(2,7,2):
print(i)
2
4
6
12、break
和continue
break
例子:
bingo = '小甲鱼是帅哥'
answer = input('请输入小甲鱼最想听的一句话:')
while True:
if answer == bingo:
break
answer = input('抱歉,错了,请重新输入(答案正确才能退出游戏):')
print('哎呦,帅偶')
continue
例子:
for i in range(10):
if (i%2 != 0):
print(i)
continue
i += 2
print(i)
结果为:
2 # 0 += 2
1 # 1
4 # 2 += 2
3
6
5
8
7
10
9
13、列表
可以把
整数
、浮点数
、字符串
、对象
都放进一个“数组”中。
>>> member = ['西汉','咋回','AdSense','的额','夫人']
>>> member
['西汉', '咋回', 'AdSense', '的额', '夫人']
>>> mix = [1,'小甲鱼',3.14,[1,2,3]]
>>> mix
[1, '小甲鱼', 3.14, [1, 2, 3]]
>>> empty = []
>>> empty
[]
14、向列表添加元素:append()
、extend()
、insert()
append()
用法>>> member
['西汉', '咋回', 'AdSense', '的额', '夫人']
>>> member.append('福禄娃娃')
>>> member
['西汉', '咋回', 'AdSense', '的额', '夫人', '福禄娃娃']
>>> len(member)
6
- 注意:
member.append( )
里边只接受一个参数。- 自动追加到列表末尾。
2.extend()
用法
>>> member
['西汉', '咋回', 'AdSense', '的额', '夫人', '福禄娃娃']
>>> member.extend(['得到','方式'])
>>> member
['西汉', '咋回', 'AdSense', '的额', '夫人', '福禄娃娃', '得到', '方式']
- 注意:
member.extend()
里面需要用一个列表[,]
。- 自动追加到列表末尾。
3.insert()
用法
函数原型:
insert(position,parameter);
position
要放入的位置。parameter
要放入的元素。
>>> member.insert(2,'穆德纳')
>>> member
['西汉', '咋回', '穆德纳', 'AdSense', '的额', '夫人', '福禄娃娃', '得到', '方式']
parameter
放入的数据也可以是数组[,]
,如:
>>> number = [1,2,3,4]
>>> number
[1, 2, 3, 4]
>>> number.insert(2,8)
>>> number
[1, 2, 8, 3, 4]
>>> number.insert(2,[21,13])
>>> number
[1, 2, [21, 13], 8, 3, 4]
15、从列表中获取元素
通过元素的索引值(
index
)从列表中获取单个元素
- 注意:列表索引值是从0开始的。
例子:
>>> member
['西汉', '咋回', '穆德纳', 'AdSense', '的额', '夫人']
>>> member[0]
'西汉'
>>> temp = member[0]
>>> member[0] = member[1]
>>> member
['咋回', '咋回', '穆德纳', 'AdSense', '的额', '夫人']
>>> member[1] = temp # 交换member[0]和member[1]的值
>>> member
['咋回', '西汉', '穆德纳', 'AdSense', '的额', '夫人']
16、从列表中删除元素:remove()
、del
语句、pop()
1.remove()
用法举例:
>>> member
['咋回', '西汉', '穆德纳', 'AdSense', '的额', '夫人']
>>> member.remove('AdSense') ##
>>> member
['咋回', '西汉', '穆德纳', '的额', '夫人']
remove()
可以删除列表中的任意一个元素。
2.del
语句用法举例:
>>> member
['咋回', '西汉', '穆德纳', '的额', '夫人']
>>> del member[1] ##
>>> member
['咋回', '穆德纳', '的额', '夫人']
del
语句可以删除整个列表。
3.pop()
用法举例:
>>> member
['咋回', '穆德纳', '的额', '夫人', '福禄娃娃', '方式']
>>> member.pop() # 让最后一个元素出栈
'方式'
>>> member
['咋回', '穆德纳', '的额', '夫人', '福禄娃娃']
>>> name = member.pop() # 让'福禄娃娃'出栈
>>> name
'福禄娃娃'
>>> member
['咋回', '穆德纳', '的额', '夫人']
pop()
中也可以加入参数:
>>> member.pop(1)
'穆德纳'
>>> member
['咋回', '的额', '夫人']
17、列表分片(slice
):一次性获得多个元素
利用索引值,每次可以获取一个元素,用列表分片可以一次性获得多个元素。
>>> member
['咋回', '的额', '夫人', '你好']
>>> member[1:3]
['的额', '夫人']
>>> member
['咋回', '的额', '夫人', '你好']
注意:
member[1:3]
是切出(3-2=1
)个元素。- 原列表不会发生任何改变。
其它情况:
>>> member
['咋回', '的额', '夫人', '你好']
>>> member[:2]
['咋回', '的额'] # 拷贝0-1元素
>>> member[1:]
['的额', '夫人', '你好'] # 拷贝1-3的元素
>>> member[:]
['咋回', '的额', '夫人', '你好'] # 拷贝整个列表
17、列表的一些常用操作符
一个例子:
>>> list1 = [123,456]
>>> list2 = [234,123]
>>> list1 >list2
False
程序中,直接比较第0个元素,得出结果为False
。
>>> list3 = [123,456]
>>> (list1 <list2) and (list1 ==list3)
True
>>> list4 = list1 + list2
>>> list4
[123, 456, 234, 123]
最好用
extend()
或insert()
向列表中添加元素。如下:>>> list4.extend([479,245]) >>> list4 [123, 456, 234, 123, 479, 245]
>>> list3
[123, 456]
>>> list3 *3
[123, 456, 123, 456, 123, 456]
注意:运行
list3 * 3
后,list3
元素并没有变化。结果如下:>>> list3 [123, 456]
但是,运行
list3 *= 3
之后,list3的元素数量会发生改变。>>> list3 [123, 456, 123, 456, 123, 456]
>>> 123 in list3
True
>>> '小甲鱼' in list3
False
>>> '小甲鱼' not in list3
True
列表里的列表不可以用
in
或not in
测试并返回True
>>> list5 = [123,['小甲鱼','牡丹'],456] >>> '小甲鱼' in list5 False
但是可以这样:
>>> '小甲鱼' in list5[1] True >>> list5[1][1] #list5中第一个元素列表的第一个元素 '牡丹'
18、列表类型的内置函数BIF
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
初始化:
>>> list3 = [123, 456, 123, 456, 123, 456]
count
计算元素在列表中出现的次数:>>> list3.count(123)
3
123
在列表中出现3
次
index
返回元素在列表中第一次出现的位置:>>> list3.index(123)
0
123
在列表中第一次出现的位置为0
但是也可以查询中间的元素在整个列表中的位置:
>>> list3.index(123,2,5) 2
第2到第5个元素中的123出现在整个列表的第2个元素上。
reverse
将整个列表逆序排列:>>> list3.reverse()
>>> list3
[456, 123, 456, 123, 456, 123]
sort
用指定的方式对列表进行排序:默认从小到大排列
>>> list6 = [4,3,5,7,1,9,0]
>>> list6.sort()
>>> list6
[0, 1, 3, 4, 5, 7, 9]
如果是从大到小排列,则可以先进行
sort
小到大排,再reverse
反转成大到小排
sort
原型:sort(func,key);
func
排序的算法key
跟算法搭配的关键字
sort
的另一种默认的结构是:sort(reverse=False)
如果改为
True
则可以直接进行从大到小的排列:>>> list6.sort(reverse=True) >>> list6 [9, 7, 5, 4, 3, 1, 0]
补充:
已知:
>>> list6
[9, 7, 5, 4, 3, 1, 0]
若新建 list7
和 list8
:
>>> list7 = list6[:]
>>> list7
[9, 7, 5, 4, 3, 1, 0]
>>> list8 = list6
>>> list8
[9, 7, 5, 4, 3, 1, 0]
对 list6
进行 sort
排列:
>>> list6.sort()
>>> list6
[0, 1, 3, 4, 5, 7, 9]
结果list7
和 list8
变得不一样了:
>>> list7
[9, 7, 5, 4, 3, 1, 0]
>>> list8
[0, 1, 3, 4, 5, 7, 9]
有关分片中[:]
形式拷贝和直接等号=
赋值区别:
拷贝是重新开辟一块存储空间用于存放相同的数组,因此原数组改变时,新拷贝的数组时不会受到影响的。
等号赋值之后的两个数组指向的都是同一个地址,实质上时同一串数组,因此在原数组改变之后,赋值的数组也会改变。
19、课程开头补充
>>> 'Let's' go!'
SyntaxError: invalid syntax
>>> 'Let\'s go!'
"Let's go!"
>>> str = 'C:\now'
>>> str
'C:\now'
>>> print(str)
C:
ow
>>> str = 'C:\\now'
>>> print(str)
C:\now
#或者使用“原始字符串”,加一个字母r
>>> str = r'C:\now'
>>> str
'C:\\now'
使用“原始字符串”的情况,再如:
>>> str = 'C:\Program Files\Intel\WiFi\Help'
>>> str
'C:\\Program Files\\Intel\\WiFi\\Help'
>>> str = r'C:\Program Files\Intel\WiFi\Help'
>>> str
'C:\\Program Files\\Intel\\WiFi\\Help'
三重引号''' '''
(""" """
):
>>> str = '''wewd
dedw
dedegrf'''
>>> str
'wewd\ndedw\ndedegrf'
>>> print(str)
wewd
dedw
dedegrf