1.3 Python基础知识

一、用户交互

  用户交互方面,每种开发语言都有不同的方式,例如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)

  但是不建议使用此种方式,使用此种方式的话,会内存空间消耗增多,效率低下。

原文地址:https://www.cnblogs.com/topspeedking/p/6397963.html