a=178
b=178
print(id(a))
print(id(b))
del a
del b
c=178
print(id(c))
小整数池的内存地址分配一致,对于同一个数值
biga=123450
bigb=123450
print(id(biga))
print(id(bigb))
del biga
del bigb
bigc=123450
print(id(bigc))
# 从结果来看,大整数和小整数结果一样
# 区别:
# 1. 从结果来看是一样的
# 2. 大整数池是没有提前的创建好对象,是一个空池,需要我们自己去创建
# 创建好之后会把整数对象保存在池子里,后面都不需要再创建了,直接拿来使用
# 小整数池是提前将 -5~256 的数据都提前创建好
python pep8原则
命令行参数
import sys
print('参数个数为:',len(sys.argv),'个参数')
print('参数列表:',str(sys.argv))
(venv) D:\pythonProject1\lajihuishou>python test.py
参数个数为: 1 个参数
参数列表: ['test.py']
(venv) D:\pythonProject1\lajihuishou>python test.py 1 2 3 4 5
参数个数为: 6 个参数
参数列表: ['test.py', '1', '2', '3', '4', '5']
(venv) D:\pythonProject1\lajihuishou>
用户友好型界面编写:
import argparse
import sys
# 创建一个解释器对象
parse=argparse.ArgumentParser(prog='my-我自己的程序',usage='%(prog)s [options] usage',
description='my-编写的命令行文件',epilog='my-epilog')
print(parse.print_help())
(venv) D:\pythonProject1\lajihuishou>python test.py
usage: my-我自己的程序 [options] usage
my-编写的命令行文件
optional arguments:
-h, --help show this help message and exit
my-epilog
None
(venv) D:\pythonProject1\lajihuishou>python test.py --help
usage: my-我自己的程序 [options] usage
my-编写的命令行文件
optional arguments:
-h, --help show this help message and exit
my-epilog
None
(venv) D:\pythonProject1\lajihuishou>
# import sys
# print('参数个数为:',len(sys.argv),'个参数')
# print('参数列表:',str(sys.argv))
import argparse
import sys
# 创建一个解释器对象
parse=argparse.ArgumentParser(prog='my-我自己的程序',usage='%(prog)s [options] usage',
description='my-编写的命令行文件',epilog='my-epilog')
# 添加位置参数【必选参数】
parse.add_argument('name',type=str,help='你自己的名字')
parse.add_argument('age',type=str,help='你的年龄')
# 添加可选参数
parse.add_argument('-s','--sex',type=str,help='你的性别')
# print(parse.print_help()) #d打印帮助文档只是列出参数
result=parse.parse_args() # 开始解析参数
print(result)
(venv) D:\pythonProject1\lajihuishou>python test.py qian 23 -s female
Namespace(name='qian', age='23', sex='female')
(venv) D:\pythonProject1\lajihuishou>
parse.add_argument('-s','--sex',action='append',type=str,help='你的性别') #可以接受多值
import argparse
import sys
# 创建一个解释器对象
parse=argparse.ArgumentParser(prog='my-我自己的程序',usage='%(prog)s [options] usage',
description='my-编写的命令行文件',epilog='my-epilog')
# 添加位置参数【必选参数】
parse.add_argument('name',type=str,help='你自己的名字')
parse.add_argument('age',type=str,help='你的年龄')
# 添加可选参数
parse.add_argument('-s','--sex',default='男',choices=['male','female'],
type=str,help='你的性别') #限定范围使用
# print(parse.print_help()) #d打印帮助文档只是列出参数
result=parse.parse_args() # 开始解析参数
print(result.name,result.age,result.sex)
(venv) D:\pythonProject1\lajihuishou>python test.py qian 23
Namespace(name='qian', age='23', sex='男')
(venv) D:\pythonProject1\lajihuishou>python test.py qian 23 -s nihao #可选范围之外,报错
usage: my-我自己的程序 [options] usage
my-我自己的程序: error: argument -s/--sex: invalid choice: 'nihao' (choose from 'male',
'female')
(venv) D:\pythonProject1\lajihuishou>python test.py qian 23 -s female
Namespace(name='qian', age='23', sex='female')
(venv) D:\pythonProject1\lajihuishou>python test.py qian 23 #直接输出值
qian 23 男
(venv) D:\pythonProject1\lajihuishou>
import argparse
import sys
# 创建一个解释器对象
parse=argparse.ArgumentParser(prog='系统登陆',usage='%(prog)s [options] usage',
description='my-编写的命令行文件',epilog='my-epilog')
# 添加位置参数【必选参数】
parse.add_argument('loginType',type=str,help='登录系统类型')
# 添加可选参数
parse.add_argument('-u',dest='user',type=str,help='你的用户名')
parse.add_argument('-p',dest='pwd',type=str,help='你的密钥')
result=parse.parse_args() #开始解析参数
if (result.user=='root' and result.pwd=='111111'):
print('login success')
pass
else:
print('login fail!')