您的位置:首页 > 编程语言 > Python开发

python基础-random、os模块、异常处理模块

2017-11-15 20:10 696 查看
random
生成一个6位数字随机验证码

生成一个6位数字字母的验证码

os模块

异常处理模块

random

import random

#大于0且小于1之间的小数
print(random.random())
#n,m 之间的小数
print(random.uniform(10,12))

#必须是两个参数,规定一个范围 [1,2]
print(random.randint(1,2))
#两个个参数 [1,2)
print(random.randrange(1,2))
#三个参数,最后一个是步长
print(random.randrange(90,100,2))

#从一个序列中随机选择:一个 choice
print(random.choice('abc'))
#列表元素任意2个组合
print(random.sample([1,'23',[4,5]],2))

#打乱一个序列的顺序
item=[1,3,5,7,9]
random.shuffle(item)  #改变了原列表
print(item)


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/2.random模块.py
0.8593931117321785
11.52733254330164
1
1
94
c
[[4, 5], 1]
[5, 3, 9, 7, 1]

Process finished with exit code 0


[b]生成一个6位数字随机验证码[/b]

#生成一个6位数字随机验证码
random.randint(100000,999999)
random.randrange(100000,1000000)

l = []
for i in range(6):
rand_num = random.randint(0,9)
l.append(str(rand_num))
print(''.join(l))

#生成一个6位数字随机验证码,不能有重复,少了好多种情况
print(random.sample(range(0,10),6))  #[0,1,2,3,4,5,6,7,8,9]


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/2.random模块.py
662220
[7, 3, 5, 4, 0, 1]

Process finished with exit code 0


[b]生成一个6位数字+字母的验证码[/b]

l = []
for i in range(6):
alpha = chr(random.randint(65, 90))  # random.randrange(65,91)
alpha_lower = chr(random.randint(97, 122))  # random.randrange(65,91)
num = str(random.randint(0, 9))
ret = random.choice([alpha,num,alpha_lower])
l.append(ret)
print(''.join(l))


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/2.random模块.py
W93Q3K

Process finished with exit code 0


os模块

import os
#和系统路径有关的
print(os.getcwd())  #*****

#生成单级目录,当文件已存在时,无法创建该文件
os.mkdir('dir1')

# # 可生成多层递归目录\当文件已存在时,无法创建该文件
os.makedirs('dir3\\dir4')
# 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.rmdir('dir3\\dir4')

#若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.makedirs('dir5\\dir6')
os.removedirs('dir5\\dir6')
# os.remove('文件路径')
# os.rename('文件路径')

print(os.listdir(r'E:\python\py_pro'))

# 将path分割成目录和文件名二元组返回
ret = os.path.split(r'C:\Users\Administrator\PycharmProjects\全栈s8\day21\os.py')
print(ret)

path = "E:\\python\\py_pro"
print(os.path.abspath(path))
print(os.path.dirname(path))

ret = os.path.basename(r'E:\\python\\py_pro')
print(ret)
ret = os.path.isfile(r'E:\\python\\py_pro')
print(ret)

ret = os.path.isdir(r'E:\\python\\py_pro')
print(ret)

ret = os.path.join(r'E:\\python\\py_pro','day21','3.os模块.py')
print(ret)
ret = os.path.getsize(r'E:\\python\\py_pro')
print(ret)




异常处理模块

语法如下:

try:
被检测的代码块
except 异常类型:
try中一旦检测到异常,就执行这个位置的逻辑


print("-------异常写法1---------")
try:
num = int(input('请输入序号 : '))
except ValueError:
print("出错了")
except Exception as e:
print('--Exception--')

print("-------异常写法2---------")
try:
num = int(input('请输入序号 : '))
except (ValueError,TypeError)as e:
print('出错啦', e)
except Exception as e:
print('--Exception--')

print("-------异常写法3---------")
try:
num = int(input('请输入序号 : '))
except Exception as e:
print('异常啦')
else:   #如果try中的代码不会发生异常,就走这个else中的内容
print('没毛病')

print("-------异常写法4---------")
try:
num = int(input('请输入序号 : '))
except Exception as e:
print('异常啦')
else:   #如果try中的代码不会发生异常,就走这个else中的内容,不能放到finally后面
print('没毛病')
finally:
print('不管异常不异常我都走这个')

print("-------异常写法5---------")
try:
num = int(input('请输入序号 : '))
except :
print("异常了。。。。")


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/5.异常处理.py
-------异常写法1---------
请输入序号 : wyf
出错了
-------异常写法2---------
请输入序号 : wyf
出错啦 invalid literal for int() with base 10: 'wyf'
-------异常写法3---------
请输入序号 : wyf
异常啦
-------异常写法4---------
请输入序号 : wyf
异常啦
不管异常不异常我都走这个
-------异常写法5---------
请输入序号 : wyf
异常了。。。。

Process finished with exit code 0


主动触发异常

#主动触发异常
t = TypeError('类型错误了')
try:
raise t
except TypeError as e:
print(e)

#构造异常信息
a = ValueError("错了")
try:
num = int(input('请输入序号 : '))
except ValueError:
print(a)

#以下方式不行
# a = ValueError("错了")
# try:
#     num = int(input('请输入序号 : '))
# except a :
#     print(a)


输出如下:

E:\python\python_sdk\python.exe E:/python/py_pro/python.py
类型错误了
请输入序号 : wy
错了

Process finished with exit code 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: