1.生成随机数
from random import randint
player_life = randint(100,150)
import random
#--------------------------------------------------------------------------------------------------#
2.随机选取元素
(1)随机选取元素
import random # 调用random模块
a = random.random() # 随机从0-1之间抽取一个小数
print(a)
a = random.randint(0,100) # 随机从0-100之间抽取一个数字
print(a)
a = random.choice('abcdefg') # 随机从字符串/列表/字典等对象中抽取一个元素(可能会重复)
print(a)
a = random.sample('abcdefg', 3) # 随机从字符串/列表/字典等对象中抽取多个不重复的元素
print(a)
items = [1, 2, 3, 4, 5, 6] # “随机洗牌”,比如打乱列表
random.shuffle(items)
print(items)
(2) string模块返回元素字符串
#返回大写字母+小写字母a-z,A-Z
string.ascii_letters
打印:'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
#返回小写字母a-z
string.ascii_lowercase
打印:'abcdefghijklmnopqrstuvwxyz'
#返回大写字母A-Z
string.ascii_uppercase
打印:'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
#返回数字,0-9
string.digits
打印:'0123456789'
#string模块详细链接
https://cloud.tencent.com/developer/article/1344618
#--------------------------------------------------------------------------------------------------#
3.延时函数
import time
(1)延时
time.sleep(1)
(2)时间戳
time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
#--------------------------------------------------------------------------------------------------#
4.重新循环
continue
退出循环:break
#--------------------------------------------------------------------------------------------------#
5.列表
(1)列表排序(升序)
a=[4,5,3,2]
a.sort()
列表排序(降序)
a.sort(comp)
(2)列表删除
del a[0]
(3)列表添加
a.append(“元素”)
()
a.index(“元素”) # 返回索引
#--------------------------------------------------------------------------------------------------#
6.字符串处理
(1)分割
以下实例以 # 号为分隔符,指定第二个参数为 1,返回两个参数列表。
txt = “Google#Runoob#Taobao#Facebook”
# 第二个参数为 1,返回两个参数列表
x = txt.split("#", 1)
print x
以上实例输出结果如下:
[‘Google’, ‘Runoob#Taobao#Facebook’]
(2) 替换
replace(“str1”,“str2”,max)
m = “aaaaaaaaaaaaaaa”
n = m.replace(“a”,“b”,5)
print(m)
print(n)
#把 将字符串中的 a 替换成 b,如果 max 指定,则替换不超过 max 次。
以上实例输出结果如下:
aaaaaaaaaaaaaaa
bbbbbaaaaaaaaaa
(3)去掉字符串两边多余的空格
a = " chen "
a = a.strip()
print(a)
输出:
chen
(4).upper() # 功能将字符串中的小写字母转换为大写字母
(5).lower() # 功能将字符串中的大写字母转换为小写字母
#--------------------------------------------------------------------------------------------------#
7.异常处理
try:
age = int(input(‘请输入一个整数:’))
except ValueError as e:
print(‘处理捕捉到的错误异常{e}’)
else:
print(“如果try下面的代码没有发生异常那么就执行else下面的代码,如果发生异常就不执行”)
finally:
print(“不管try下面的代码是否遇到异常finally下面的代码一定会执行”)
except AttributeError and ValueError:#错误类型可以用and连接
#--------------------------------------------------------------------------------------------------#
8.字典
(1)遍历字典 .items()
dict = {‘老大’:‘15岁’,‘老二’:‘14岁’,‘老四’:‘1岁’}
print(dict.items())
for key,values in dict.items():
print(key + ‘已经’ + values + ‘了’)
(2)删除字典 del
del dict[‘Name’] # 删除键 ‘Name’
del dict #删除字典
(3)删除字典 .pop()方法
dic.pop(‘老五’)#此时如果没有老五的key,就会报错 KeyError: ‘老五’
print(dict)
print(dict.pop(‘老五’,‘没有’)) #此时虽然找不到‘老五’key,但是不会报错,并且将‘henan’返回
print(dict) #此时字典没有被改变 :{‘老大’:‘15岁’,‘老二’:‘14岁’,‘老四’:‘1岁’}
(4)随机删除字典元素 .popitem()方法
dict.popitem()
#--------------------------------------------------------------------------------------------------#
9.类
(1).#创建类属性和类方法
class 智能机器人():
智商 = 200
def 打招呼():
print(‘主人你好!’)
print(智能机器人.智商)
智能机器人.打招呼()
(2).使用类类属性和类方法
class 幸运():
@classmethod
def 好运翻倍(cls):
print(“好的我把它存起来了然后翻了888倍给你%s”%cls.幸运数)
幸运.幸运数 = input("输入你的幸运数")
幸运.好运翻倍()
# 请直接运行和体验代码
(3).类实例化(1.当类支持实例化的时候,就不能再直接使用类方法了 ;
2.在类中可以修改属性,实例类也会随之变化,
3.实例化的类中可以在实例中修改属性,但不能修改方法 ,
4.修改实例属性后该属性不会在被类修改;)
class 成绩单():
def 录入成绩单(self):
self.学生姓名 = input('请输入学生姓名:')
self.语文_成绩 = int(input('请输入语文成绩:'))
self.数学_成绩 = int(input('请输入数学成绩:'))
def 打印成绩单(self):
print(self.学生姓名 + '的成绩单如下:')
print('语文成绩:'+ str(self.语文_成绩))
print('数学成绩:'+ str(self.数学_成绩))
成绩单1 = 成绩单() # 实例化,得到实例对象“成绩单1”
成绩单2 = 成绩单() # 实例化,得到实例对象“成绩单2”
成绩单3 = 成绩单() # 实例化,得到实例对象“成绩单3”
print('现在开始录入三份成绩单:')
成绩单1.录入成绩单()
成绩单2.录入成绩单()
成绩单3.录入成绩单()
print('现在开始打印三份成绩单:')
成绩单1.打印成绩单()
成绩单2.打印成绩单()
成绩单3.打印成绩单()
(4).初始化函数(当你创建一个实例的时候,这个函数就会被调用)
class 类():
def __init__(self):
print('实例化成功!')
实例 = 类()
(5)类的继承,和重写
class 父类():
def __init__(self):
pass
def han():
pass
class 子类(父类)
def han():
pass
子类继承了父类的所有方法,同时又重写了父类的第二个方法
(6)类的超继承
class 父类():
def __init__(self):
pass
def han():
pass
class 子类(父类)
super().__init__ #类的超继承相当于,在子类中调用父类的方法
(7)类的多重继承
class 父类1():
def __init__(self):
pass
def han():
pass
class 父类2():
def __init__(self):
pass
def han():
pass
class 父类3():
def __init__(self):
pass
def han():
pass
class 子类(父类1,父类2,父类3)
pass #多重继承时若多个父类方法重名,继承的是第一个父类的方法
(8)修饰器
staticmethod 静态方法,如果声明 此类中的某一个def a()为静态方法,那么可以不用实例化就能直接调用
classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
#--------------------------------------------------------------------------------------------------#
10.文件编码和解码
(1)编码
name = ‘陈永奇’
name_utf8 = name.encode(‘utf-8’)
print(name_utf8)
(2)解码
name = b'\xe9\x99\x88\xe6\xb0\xb8\xe5\xa5\x87'
name_u8 = name.decode('utf-8')
print(name_u8)
#--------------------------------------------------------------------------------------------------#
11.文件读写
(1)文件读写:
f1 = open(’./1.txt’,‘a’,encoding=‘utf-8’)
#以追加的方式打开一个文件,./为返回上一级每加一个.返回一级
f1.write(‘难念的经’)
#写入’难念的经’的字符串
f1.close()
#关闭文件
f2 = open('./1.txt','r',encoding='utf-8')
#以读的方式打开这个文件
content = f2.read()
#把读取到的内容放在变量content里面
print(content)
#打印变量content
f2.close()
#关闭文件
(2)文件读写with
# 使用with关键字的写法
with open('abc.txt','a') as file1: #with open('文件地址','读写模式') as 变量名: #格式:冒号不能丢
file1.write('张无忌') #格式:对文件的操作要缩进 #格式:无需用close()关闭
(3).readlines() #逐行读取
(4).writelines() #逐行写入
(5)split() #使用split()来把字符串分开,它会按空格把字符串里面的内容分开。
(6)join() #join()函数,是把字符串合并的。
a=['c','a','t']
b=''
print(b.join(a))
c='-'
print(c.join(a))
#--------------------------------------------------------------------------------------------------#
12. (1)导入模块
from test import a,hi,Go1,Go2
(2)当xx.py文件被直接运行时,代码块②将被运行”,
“xx.py文件作为模块是被其他程序导入时,代码块②不被运行。
代码块 ①……
if __name__ == '__main__':
代码块 ②……
#--------------------------------------------------------------------------------------------------#
13.延时函数
import time
(1)延时
print(‘第一句话,过两秒出现第二句。’)
time.sleep(2)
print(‘第二句话。’)
(2)时间戳
print(time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()))
#--------------------------------------------------------------------------------------------------#
14. 我们还可以使用dir()函数查看一个模块,看看它里面有什么变量、函数、类、类方法。
甚至不是模块,我们也可以用这种方式自学:dir(x),可以查询到x相关的函数,x可以是模块,也可以是任意一种对象。
#--------------------------------------------------------------------------------------------------#
15.quote() #url编码函数
#屏蔽特殊的字符、比如如果url里面的空格!url里面是不允许出现空格的。
按照标准, URL 只允许一部分 ASCII 字符(数字字母和部分符号),其他的字符(如汉字)是不符合 URL 标准的。
所以 URL 中使用其他字符就需要进行 URL 编码。
URL 中传参数的部分(query String),格式是:
name1=value1&name2=value2&name3=value3
假如你的 name 或者 value 值中有『&』或者『=』等符号,就当然会有问题。所以URL中的参数字符串也需要把『&=』等符号进行编码。
URL编码的方式是把需要编码的字符转化为 %xx 的形式。通常 URL 编码是基于 UTF-8 的(当然这和浏览器平台有关)。
例子:
比如『我』,unicode 为 0x6211, UTF-8 编码为 0xE6 0x88 0x91,URL 编码就是%E6%88%91
-
json模块
import json
a = ‘{“a”:1,“b”:2}’
value = json.loads(字符串) # 字符串(JSON格式)转字典a = {“a”:1,“b”:2}
value = json.dumps(字典) # 字典转字符串(json),注意:字典里面的引号一定要用双引号
#--------------------------------------------------------------------------------------------------#
17.Python内置方法和内置函数
#方法
(1).upper() # 功能将字符串中的小写字母转换为大写字母
(2).lower() # 功能将字符串中的大写字母转换为小写字母
(3).reverse() #倒叙,反置列表
(4).sort() # 列表排序正序小->大 .sort(reverse=True)# 列表排序反序大->小
#函数
(1)set(value) #集合
(2)list() # 列表
(3)id() # 返回变量地址
(4)isinstance(object, classinfo) # 函数来判断一个对象是否是一个已知的类型,类似 type(),如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False
(5)getattr(类名, “类属性”, “默认值”) # 动态获取变量,若变量不存在则取默认值若不传默认为None
(6)