第四章-用户输入与错误处理(User Input and Error Handling)
- Python 输入数据的方法:
- 从终端窗口(Terminal Window)输入 (4.1 节)
- 从命令行(Command Line)输入 (4.2 节)
- 从文件(File)输入 (4.5 节)
- 从图形界面(Graphical Interface)输入 (4.8 节)
- 检测用户输入数据的合法性-4.7 节
- 编写自己的模块(Module)-4.9 节
4.1-问个问题,读取答案
问用户一个问题,将其答案输入程序中;用到的函数为:raw_input(Python 2)或 input(Python 3)。
- 例如:
#Python2 C = raw_input('C=? ') print C #Python3 C = input('C=? ') print(C)
- 运行结果:
4.2-命令行中,读取数据
通过命令行输入数据。
4.2.1
- 例如:
#Python3 import sys C = sys.argv[1] print(C)
- 运行结果:
- 说明:
- 需要 import sys
- sys.argv 为参数列表,保存命令行参数;上述命令中:sys.argv[0] 为 temp.py,sys.argv[1] 为 21。
4.2.2
命令行中所有参数均为字符串,运算时需转为对应类型。
- 例如:
#Python3 import sys s = 0 for arg in sys.argv[1:]: number = float(arg) s += number print('The sum is: %f' % s)
- 运行结果:
- 更简洁的表达:
#Python3 import sys s = sum([float(x) for x in sys.argv[1:]]) print('The sum is: %f' % s)
4.2.3
命令行参数以空格隔开;若需输入空格,应当使用引号。
- 程序:
#Python3 import sys print(sys.argv[1:])
- 运行结果 1(无引号):
- 运行结果 2(有引号):
4.3-将用户文本,转换为实时对象(Turning User Text into Live Objects)
将用户输入的公式,直接运行。
4.3.1
神奇的 eval 函数,可直接将字符串类型的表达式转为对应的对象。
- 例如:
- 与 4.1 结合:
- 与 4.2 结合:
4.3.2
神奇的 exec 函数,可直接将字符串类型的代码直接运行。
- 例如:
- 与 4.1 结合:
- 与 4.2 结合:
4.3.3
待续