创建randpass.py脚本,要求如下:
- 编写一个能生成8位随机密码的程序
- 使用random的choice函数随机取出字符
- 改进程序,用户可以自己决定生成多少位的密码
导入random模块,通过random静态对象调用choice()方法,从自定义字符串all_chs中获取随机项,将获取到的随机字符ch与原result值进行拼接,将最终字符串结果返回给函数,for循环每循环一次获取一个随机字符,密码位数由循环次数决定,循环次数由传递参数值决定。
此程序需要注意的部分在于:
1.导入String模块,其中ascii_letters是生成所有字母,从a-z和A-Z,digits是生成所有数字0-9
2.将整个生成随机密码的代码封装进gen_pass()函数中,当模块文件直接执行时,调用函数即可输出结果
3.参数传递问题:调用函数无实参时,函数调用默认参数,有实参时,函数调用实际参数
实现此案例需要按照如下步骤进行。
步骤一:编写脚本
- vim randpass.py
- #!/usr/bin/env python3
- import random
- import string
- all_chs = string.digits + string.ascii_letters
- def gen_pass(n=8):
- result = ''
- for i in range(n):
- ch = random.choice(all_chs)
- result += ch
- return result
- if __name__ == '__main__':
- print(gen_pass())
- print(gen_pass(4))
步骤二:测试脚本执行
- python3 randpass.py
- 82wi2gOP
- XzMi
- [root@localhost day03]# python3 randpass.py
- 5wMoDEgC
- BDpc
- [root@localhost day03]# python3 randpass.py
- Ige2VGod
- Az0z
- [root@localhost day03]# python3 randpass2.py
- eajAocMH
- edW1