风变编程笔记
以下笔记是个人比较需要的,并没有涵盖课程所有知识点。
Python基础语法
体验课第0关-第3关
1. ''' 三引号为原样打印
2. 转义字符
3. 算术运算符
print(2+1) # 加法 # 》》3 print(1-2) # 减法 # 》》-1 print(1*2) # 乘法 # 》》 2 print(1/2) # 除法 # 》》0.5 print(5 % 2) # 取模(做除法返回余数) # 》》1 print(2**3) # 幂(这里是2的3次方) # 》》8 print(11//2) # 取整除(做除法返回商的整数部分) # 》》5
第4关 列表和字典
1. 列表(list)
一些列表的相关操作↓
s = ['柯佳嬿', '许光汉', '施柏宇', '颜毓麟', '林鹤轩', '张翰'] print(len(s)) # 打印列表s的长度 # 》》6 print(type(s)) # 打印列表s的类型 # 》》<class 'list'> print(s[3]) # 打印列表s里面的第3个元素 # 》》颜毓麟 print(s[-3]) # 打印列表s里面的倒数第3个元素 # 》》颜毓麟 list1 = [91, 95, 97, 99] list2 = [92, 93, 96, 98] # 列表的合并 list3 = list1+list2 # 第一种方法:+直接拼接 print(list3) # 》》[91, 95, 97, 99, 92, 93, 96, 98] list1.extend(list2) # 第二种方法:extend()方法 print(list1) # 》》[91, 95, 97, 99, 92, 93, 96, 98] # 列表的排序 list3.sort() # 列表从小到大排序 print(list3) # 》》[91, 92, 93, 95, 96, 97, 98, 99] list3.reverse() # 列表从大到小排序 print(list3) # 》》[99, 98, 97, 96, 95, 93, 92, 91]
用冒号来截取列表元素的操作叫作切片(slice),切片可以单拿出来说很长的篇幅,网上搜到一篇讲的很清楚的:彻底搞懂Python切片操作
给列表增加元素:列表名.append( )
给列表删除元素:del 列表名[元素的索引]
pop()函数,用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值↓
students = ['小明', '小红', '小刚'] for i in range(3): student1 = students.pop(0) # 运用pop()函数,同时完成提取和删除。 students.append(student1) # 将移除的student1安排到最后一个座位。 print(students) # 》》》 ['小红', '小刚', '小明'] # 》》》 ['小刚', '小明', '小红'] # 》》》 ['小明', '小红', '小刚']
2. 字典(dict)
字典中的键具备唯一性,而值可重复
从字典中提取元素:字典名[字典的键]
字典新增键值对:字典名[键] = 值↓
scores = {'小明': 95, '小红': 90, '小刚': 90} print(scores['小明']) # 从字典中提取元素 # 》》95 scores['小红'] = 88 # 改变字典中的值 print(scores['小红']) # 》》88 scores['小北'] = 98 # 给字典新增键和值 print(scores) # 》》{'小明': 95, '小红': 88, '小刚': 90, '小北': 98}
字典删除键值对:del 字典名[键]
3. 列表和字典的不同点
列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的列表。而字典相比起来就显得随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是随机排列的。
4. 列表和字典的嵌套
students = { '第一组':['小明','小红','小刚','小美'], '第二组':['小强','小兰','小伟','小芳'] } print(students['第一组'][3]) #取出'第一组'对应列表偏移量为3的元素,即'小美' scores = [ {'小明':95,'小红':90,'小刚':100,'小美':85}, {'小强':99,'小兰':89,'小伟':93,'小芳':88} ] print(scores[1]['小强']) #先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。
5. 元祖(tuple)
list2 = [('A', 'B'), ('C', 'D'), ('E', 'F')] print(list2[1][1]) # 》》 D # 从代码里可看出:1.元组内数据的提取也是用偏移量;2.元组也支持互相嵌套。
以上几种关于收纳的数据类型,最常用的还是列表,而对偏移量和切片的使用是写算法非常重要的技能
第5关 for循环和while循环
1. for...in...循环语句
2. range()函数
3. while循环
4. 两种循环对比
第6关 布尔值和四种语句
布尔运算的三种方式:
第一种计算:两个数值做比较
一共有6种比较方式:==、!=、>、<、>=、<=
print(3 == 3.0) # 》》True print('a' != 'a') # 》》False print(3 > 5) # 》》False print(3 < 5) # 》》True print(100 >= 101) # 》》False print(100 <= 101) # 》》True
第三种计算:布尔值之间的运算
一共有5种计算方式:and、or、not、in、not in
# and计算和or计算 a = 1 b = -1 print(a == 1 and b == 1) # and要求条件都满足才为True # 》》False print(a == 1 or b == 1) # or只要求其中一个条件满足就为True # 》》True # not计算 a = True print(not a) # not计算会反转真假 # 》》False # in计算和not in计算 a = [1, 2, 3, 4, 5] print(0 in a) # in用来判断一个元素是否在一堆数据之中 # 》》False print(1 in a) # 》》True print(0 not in a) # not in用来判断一个元素是否不在一堆数据之中 # 》》True print(1 not in a) # 》》False
第7关 项目实操:PK小游戏(1)
import time #调用time模块 time.sleep(secs) #使用time模块下面的sleep()函数,括号里填的是间隔的秒数(seconds,简称secs) #time.sleep(1.5)就表示停留1.5秒再运行后续代码
import random #调用random模块 a = random.randint(1,100) # 随机生成1-100范围内(含1和100)的一个整数,并赋值给变量a print(a)
取英文变量名推荐网站:CODELF
三种格式化字符串方法↓
a = 5 b = 7.85 print(str(a)+'+'+str(b)+'='+str(a+b)) # 第一种:+拼接字符串和变量 # 》》5+7.85=12.85 print('%d+%s=%.2f' % (a, b, a+b)) # 第二种:格式符+类型码 .2f表示浮点数显示并保留两位小数 # 》》5+7.85=12.85 print('{}+{}={}'.format(a, b, a+b)) # 第三种:format()函数 # 》》5+7.85=12.85
第8关 编程思维:如何解决问题
print()不换行↓
print('hello', end='~~~~~~') # 通过end参数控制打印换行 print('world') # 》》hello~~~~~~world
拓展程序库numpy的简单用法↓
import numpy as np # 导入 numpy库,下面出现的 np 即 numpy库 a = [91, 95, 97, 99, 92, 93, 96, 98] average = np.mean(a) # 求平均数,average是numpy.float64类型 print(average) # 》》95.125 b = np.array(a) # 将列表a转换为numpy.ndarray类型 print('小于平均数的有:{}' .format(b[b < average])) # 》》[91 95 92 93] c = b.tolist() # 将数组b转换回列表 print(type(c)) # 》》<class 'list'>
第9关 函数
更多精彩