input()#输入指令输入进的数据自动转化为字符串,相当于C语言中的printf和scanf相结合
append()#插入函数,每次插入只能插入一个元素,列表可以看作是一个元素,并且插入的元素在末尾
del #删除函数
pop()函数提取和删除元素默认为最后一个元素,也可以指定元素
pop(0)#提取和删除第一个元素
语法:del 列表名[元素的索引]
字典
语法:scores={‘小明’:95,‘小红’:90}
删除字典里键值对的代码是del语句del 字典名[键],而新增键值对要用到赋值语句字典名[键] = 值
字典中值具有唯一性
len()#计算列表或字典的长度
循环
for…in…循环
range() 函数
for i in range(3):
print(i)
运行结果:
0
1
2
range(0,10,3)的意思是:从0数到9(取头不取尾),步长为3。
while循环
i=1
while i<101:
print(i*5)
i=i+1
bool布尔值
会判断成假的字符:False、0、’’(空字符串)、[](空列表)、{}(空字典)、None
其他都是真
in#判断一个元素是否在一堆数据之中
import time#调用time模块
time.sleep(secs(秒数))
生成随机数
random模块中的randint()函数
random.randint(0,9)#生成的随机数在0,9之间
格式符
print(‘血量:’+str(player_life)+’ 攻击:’+str(player_attack))
print(‘血量:%s 攻击:%s’ % (player_life,player_attack))
‘end’是用来控制换行行数和结尾字符
print(‘hello’,end=’’)
print(‘world’)
extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
helloworld#结果
起别名
import numpy as np # 导入 numpy库,下面出现的 np 即 numpy库
比如我们觉得import story太长,就可以用import story as s语句,意思是为“story”取个别名为“s”。
求平均值
scores1 = [91, 95, 97, 99, 92, 93, 96, 98]
average = np.mean(scores1)
x ** y 表示 x的y次幂
函数
随机功能我们可以用random模块中的random.choice()函数来
import random
#引入random模块
appetizer = [‘话梅花生’,‘拍黄瓜’,‘凉拌三丝’]
def coupon(money):
if money < 5:
a = random.choice(appetizer)
return a
elif 5 <= money < 10:
b = random.choice (appetizer)
return b, ‘溏心蛋’
print(coupon(3))
print(coupon(6))
同时定义多个变量,来接收元组中的多个元素(看最后四行代码,直接运行即可)
import random
appetizer = [‘话梅花生’, ‘拍黄瓜’, ‘凉拌三丝’]
def coupon(money):
if money < 5:
a = random.choice(appetizer)
return a, ‘’
elif 5 <= money < 10:
b = random.choice(appetizer)
return b, ‘溏心蛋’
dish, egg = coupon(7)
#元组的两个元素分别赋值给变量dish和egg
print(dish)
print(egg)
global它可以将局部变量声明为全局变量
类和对象
class Computer:#类的创建
screen = True#类的属性创建
def start(self):#类的方法创建
print('电脑正在开机中……')#方法具体的执行过程
注:在类中赋值的变量叫作属性,类中定义的函数叫作方法
实例方法是指类中参数带self的函数,是类方法的一种形式,也是最常用的用法
定义初始化方法的格式是def init(self),是由init加左右两边的【双】下划线组成
初始化方法的作用在于:当每个实例对象创建时,该方法内的代码无须调用就会自动运行。
例一:
class Chinese:
def __init__(self):
print('很高兴遇见你,我是初始化方法')
person = Chinese()
#运行结果:很高兴遇见你,我是初始化方法
例二:
class Chinese:
def init (self):
self.mouth = 1 # self.不能丢
self.eye = 2
def body(self):
print('我有%s张嘴巴' % self.mouth)
print('我有%s只眼睛' % self.eye)
person = Chinese()
person.body()
#结果:
我有1张嘴巴
我有2只眼睛
类的继承和定制
class A(B):
A:子类名
B:父类名
函数isinstance(),可以用来判断某个实例是否属于某个类
print(isinstance(1,int))
#判断1是否为整数类的实例
print(isinstance(1,str))
print(isinstance(1,(int,str)))
#判断实例是否属于元组里几个类中的一个
#结果:
True
False
True
只要在类中定义了__str__(self)方法,那么当使用print打印实例对象的时候,
就会直接打印出在这个方法中return的数据。
例如:
class Book:
def __init__(self, name, author, comment, state = 0):
self.name = name
self.author = author
self.comment = comment
self.state = state
def __str__(self):
if self.state == 0:
status = '未借出'
else:
status = '已借出'
return '名称:《%s》 作者:%s 推荐语:%s\n状态:%s ' % (self.name, self.author, self.comment, status)
book1 = Book(‘像自由一样美丽’,‘林达’,‘你要用光明来定义黑暗,用黑暗来定义光明’)
#传入参数,创建实例对象
print(book1)
#直接打印对象即可,不能写成print(book1.str())
解码与编码
编码,即将人类语言转换为计算机语言,就是【编码】encode();反之,就是【解码】decode()
例子:
print(‘吴枫’.encode(‘utf-8’))
print(‘吴枫’.encode(‘gbk’))
print(b’\xe5\x90\xb4\xe6\x9e\xab’.decode(‘utf-8’))
print(b’\xce\xe2\xb7\xe3’.decode(‘gbk’))
结果:
b’\xe5\x90\xb4\xe6\x9e\xab’
b’\xce\xe2\xb7\xe3’
吴枫
吴枫
文件的读写
file1 = open(’/Users/Ted/Desktop/test/abc.txt’,‘r’,encoding=‘utf-8’)
Windows系统里,常用\来表示绝对路径,/来表示相对路径,所以当你把文件拖入终端的时候,绝对路径就变成:
C:\Users\Ted\Desktop\test\abc.txt
\在Python中是转义字符,所以时常会有冲突。为了避坑,Windows的绝对路径通常要稍作处理,写成以下两种格式;
pen(‘C:\Users\Ted\Desktop\test\abc.txt’)
#将’‘替换成’\’
open(r’C:\Users\Ted\Desktop\test\abc.txt’)
#在路径前加上字母r
encoding=‘utf-8’,表示的是返回的数据采用何种编码,一般采用utf-8或者gbk。
读写的两种方法:
#普通写法
file1 = open(‘abc.txt’,‘a’)
file1.write(‘张无忌’)
file1.close()
#使用with关键字的写法
with open(‘abc.txt’,‘a’) as file1:
#with open(‘文件地址’,‘读写模式’) as 变量名:
#格式:冒号不能丢
file1.write(‘张无忌’)
#格式:对文件的操作要缩进
#格式:无需用close()关闭
file1 = open(’/Users/Ted/Desktop/scores.txt’,‘r’,encoding=‘utf-8’)
file_lines = file1.readlines()
file1.close()
for i in file_lines: #用for…in…把每一行的数据遍历
data =i.split() #把字符串切分成更细的一个个的字符串
print(data) #打印出来看看
结果:
[‘罗恩’, ‘23’, ‘35’, ‘44’]
split()是把字符串分割的,而还有一个join()函数,是把字符串合并的。
a=[‘c’,‘a’,‘t’]
b=’’
print(b.join(a))
c=’-’
print(c.join(a))
结果:
cat
c-a-t
模块
import 模块名#导入模块
from … import …语句可以让你从模块中导入一个指定的部分到当前模块
当我们需要从模块中指定所有内容直接使用时,可以写成【from xx模块 import *】的形式,
*代表“模块中所有的变量、函数、类”
if name == ‘main’
#xx.py文件
代码块1…
if name == ‘main’:
代码块2…
当xx.py文件被直接运行时代码块2运行
当xx.py文件被作为模块调用时,代码2不运行
可以使用dir()函数查看一个模块
import random # 调用random模块
print(dir(random))