import sys
sys.argv
命令行参数List,
sys.argv[0]
第一个元素是程序本身路径
'在cmd下,返回一个命令行参数列表,第一个参数sys.argv[0]
标识程序本身路径,
sys.argv[1]
....标识用户输入的命令或参数'
import sys
sys.argv
command1 = sys.argv[1]
command2 = sys.argv[2]
if command1 == "用户输入的指令1":
pass
if command2 == "用户输入的指令2":
pass
作用是,可根据用户输入的指令动态的执行程序
-
sys.exit(n)
退出程序,正常退出时exit(0) -
sys.version
获取Python解释程序的版本信息 -
sys.maxint
最大的Int值 -
sys.path
返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform
返回操作系统平台名称
模拟进度条
import sys,time
for i in range(10):
sys.stdout.write('#') #同print功能,不过可以持续打印,不覆盖
time.sleep(1)
sys.stdout.flush() #刷新
这里补充一个我遇到的坑:
在循环中使用time.sleep()使循环阻塞一段时间
import sys,time
for i in range(10):
print(i,end='')
time.sleep(1)
预期结果是每间隔1秒输出一个数字
但实际结果是等待10秒后直接输出0-9一整串数字
在网上也没有找到具体原因,我估计是因为sleep()循环加入线程
导致循环完毕之后才输出最终结果
解决方法:
在循环末尾加上一段系统刷新的代码:sys.stdout.flush()
思考:
是不是只有for循环才有这种问题?于是我验证了while循环,发现同for一样
至于尾递归我就没有试过了,有兴趣的可以试试