一、用户交互
用户交互方面,每种开发语言都有不同的方式,例如shell语言用的是,“read -p "What is your name ? " ”。python中是什么样子的呢?请看示例:
name = input("What is your name ? ")
print("Hello ",name)
python中使用的是函数input()进行用户交互,示例中通过input()函数提出问题“What is your name ?”,这时会等待用户的输入,当用户输入一个答案后,由input()函数接收到并传递给名为name的变量,并打印出结果。这是在python 3.x中交互方式,在python 2.x 中是另一个方法实现的,如下:
name = rawinput("What is your name ? ")
print("Hello ",name)
在有一些登录场景,我们是需要输入密码的,但是我们通过传统的方式,获取信息,代码如下:
username = input("username : ")
passwd = input("password")
但是这种方式输入的密码是以明文的方式,即可见的方式获取的,不太安全,所以在python中可以使用不可见的方式获取到密码,代码如下:
# 导入getpass模块
import getpass username = input("username :") # 使用getpass.getpass方法获取到输入的密码
password = getpass.getpass("password : ")
二、传递参数
在上面的示例中,将接收到答案是通过print()函数输出的,那么答案的变量name是怎么样传递的呢?在python中有以下几种方式:
示例1:
name = input("你叫什么名字?")
age = input("你多大了?")
job = input("你的工作是什么?") # 在python中可以用三组引号进行格式化 info = """
------ info of %s ------
name : %s
age : %s
job : %s
""" % (name,name,age,job) print(info)
示例1中使用的方式为“$s”,即使用数据类型进行占位,后面按位置进行传递相应的变量。$s代表需要传递一个sting类型数据,python中还有其他类型数据$d,代表的是integer类型数据等。
示例2:
name = input("你叫什么名字?")
age = input("你多大了?")
job = input("你的工作是什么?") info = ""
------ info of {_name_} ------
name : {_name_}
age : {_age_}
job : {_job_}
""".format(_name_=name,
_age_=age,
_job_=job) print(info)
示例2中采用的是字符串格式化方式,在需要传递参数的位置使用“{关键名字}”,在后面使用format的方法对对应的名字进行变量赋值。这个参数又叫关键位置参数
示例3:
name = input("你叫什么名字?")
age = input("你多大了?")
job = input("你的工作是什么?") info = ""
------ info of {0} ------
name : {1}
age : {2}
job : {3}
""".format(name,name,age,job) print(info)
示例3中与示例2中类似,只是在format中指定参数的方式是通过位置进行传递参数,一一对应传递参数。所以又叫做位置参数。
以上三种示例的结果是一样的,其实在python中还有一个方式是通过"+"拼接的方式,例如:
name = input("你叫什么名字?")
age = input("你多大了?")
job = input("你的工作是什么?") info = """
------ info of """+name+""" ------
name : """+name+"""
age : """+age+"""
job : """+job+"""
""" print(info)
但是不建议使用此种方式,使用此种方式的话,会内存空间消耗增多,效率低下。