这本书上教的用户输入方法有三种,下面一一详细介绍:
raw_input( ):
这个是最常用的,它可以接收用户输入的任意字符,并将其转化为字符串,注意raw_input只用于用户输入,因此只有程序运行时在终端输入的字符才会被传入到这个函数中,程序员在脚本中括号内输入的字符会被用来作为用户输入的提示,且此字符必须
必须加引号:
raw_input("your name:")
运行结果:
程序运行到此处时会暂停,光标闪烁等待用户输入,用户输入后 按回车键即可继续运行程序:
用户输入后的字符串可以赋值给一个变量,使其在脚本中使用:
name = raw_input("your name:")
print "I'm %s." % name
运行结果:
input( ):
与raw_input不同的是,input会把用户输入的东西当作python代码进行处理,使用它会有安全问题,要尽量避免使用。
input("your name:")
运行结果:
输入的字符和上次一样,怎么出错了呢?因为input把“leo"当作代码中的一部分来处理了。在python中,非字符串,整型和浮点型的字符必须提前被定义,如被定义成类名,函数名或变量,否则不会被承认,此例中,因为没有被定义导致python在处理"leo"时,会发出疑问:怎么回事,我不认识它,它是谁?所以出错了。
接下来看几个正确的例子:
leo = "leo"
name = input("your name:")
print "I'm %s." % name
name = input("your name:")
print "I'm %s." % name
两例中"leo"均被定义为字符串。
from sys import argv:
首先来解释一下书上的例子:
from sys import argv
script, first, second, third = argv
print "The script is called:", script
print "Your first variable is:", first
print "Your second variable is:", second
print "Your third variable is:", third
第一句,将sys模块引入脚本,在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字,argv是这个文件中的一个方法,或许是一个类,一个函数,这里argv是一个传递给脚本的命令行参数列表(The list of command line arguments passed to a Python script),第一句的意思即“从sys这个文件中把argv导入到这里来,我要调用它。”
第二句,将argv中的命令行参数解包。在每次运行py文件时,都要输入python name.py,其中python告诉终端运行的是python文件,而name.py就是一个命令行参数。这一句中相当于将argv中的一系列命令行参数解放出来,分别赋值给你给定好的变量,变量的名字是可以随便取的,就和一个妈妈生下四个孩子,你给他们四个分别取了名字是一样的。
剩下的不用我说大家也清楚,就是四个变量的运用。
需要特别注意的是,四个参数名在终端紧跟在“python”之后输入,由于第一个必须是你要运行的文件名,因此第一个变量永远代表了文件名,命令行参数都是字符串类型。如下:
因此运行结果即: