习题十一~习题十四
博客专区 > YuXingY 的博客 > 博客详情
习题十一~习题十四
YuXingY 发表于2年前
习题十一~习题十四
  • 发表于 2年前
  • 阅读 9
  • 收藏 0
  • 点赞 1
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 用户输入: raw_input, input, argv

这本书上教的用户输入方法有三种,下面一一详细介绍:

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”之后输入,由于第一个必须是你要运行的文件名,因此第一个变量永远代表了文件名,命令行参数都是字符串类型。如下:

因此运行结果即:


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 39
码字总数 18413
×
YuXingY
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: