每天10分钟,带你一周精通Python:第5章 程序可交互
既然已经讲解了变量的基础知识,我们就可以使用它们写一个程序。我们将会重新回顾在第2章中编写的“Hello World”程序,但这一次我们将会让它变得可以交互。除了向world说hello,我们也想让world知道我们的名字和年龄。为了达到这个目的,程序需要能够给我们提供一些信息的提示,并可以把它们显示在屏幕上。
有两个内建的函数可以帮助我们完成这个任务:input()和print()。
现在,让我们在IDLE中输入下面的程序,保存并运行它。
myName = input("Please enter your name:")
myAge = input("What about your age:")
print ("Hello World, my name is",myName,
"and I am", myAge, "years old.")
这个程序现在应该可以提示你输入姓名了。
Please enter your name:
假设你输入的名字是James。现在按下回车键,程序会提示你输入你的年龄。
What about your age:
假设你输入的是20。现在再次按下回车键。你应该可以看到下面的句子。
Hello World, my name is James and I am 20 years old.
5.1 Input()
在上面的例子中,我们使用了两次input()函数,分别得到了用户输入的姓名和年龄。
myName = input(“Please enter your name:”)
字符串“Please enter your name:”是显示在屏幕上的提示,用于给用户提供指导信息。 在用户输入相关的信息后,这些信息会以字符串的形式保存在变量myName中。 下一段输入的声明语句提示用户输入年龄,并把输入的信息以字物串的形式保存在变量myAge中。
input()函数在Python 2和Python 3中稍有不同。在Python 2中,如果想把用输入的信息保存为字符串,就需要使用raw_input()函数。
5.2 Print()
print()函数用于给用户展示信息。它接受零个或者更多的表达式作为参数这些参数用逗号隔开。
在下面的声明语句中,我们向print()函数输入了5个参数。你可以找到它们吗?
print ("Hello World, my name is",myName,
"and I am", myAge,"years old.")
第一个参数是字符串“Hello World,my name is”。下一个参数是变量myName,是前面使用input函数声明的变量。
接下来是字符串“and l am”,后面的是变量myAge,最后是字符串“years old.”。
注意我们在使用变量myName和myAge时,并没有使用引号。如果你使用了引号,你将会得到这样的输出:
Hello World, my name is myName and I am
myAge years old.
而这,显然不是我们想要的。
另一种打印有变量的声明的方法是使用我们在第4章学到的%格式化符号。 为了得到和上面第一条print声明语句相同的输出,我们可以这么写:
print ("Hello World, my name is %s and I am
%s years old." %(myName, myAge))
最后,为了使用format()方法打印出相同的语句,我们这么写:
print ("Hello World, my name is {} and I am
{} years old".format(myName, myAge))
print()函数是Python 2和Python 3中另一个不同的函数。在Pvthon 2中,你写的应该去掉括号,像这样:
print "Hello World, my name is "+ myName+
"and I am "+ myAge +"years old."
5.3 三引号
如果想要显示一段很长的信息,你可以使用三引号(‘’‘或者’‘’),让信息扩展到多行。比如:
print ('''Hello World.
My name is James and
I am 20 years old.''')
将会输出为:
Hello World.
My name is James and
I am 20 years old.
这有助于提升消息的可读性。
5.4 转义符号
有时我们可能需要打印一些特殊的“无法打印”的字符,比如制表符号或者新行。在本例中,你需要使用\(反斜杠)符号来转义字符,否则会有一个不同的含义。
比如打印一个制表符号,我们在字母t前面输入反斜杠符号,像这样:\t。没有\符号的话,字母t就会被打印出来。有这个符号,就会打印出一个制表符号。因此,如果输入print(‘Hello\tWorld’),你将会得到Hello World。
反斜杠符号的其他常见的使用方式如下所示。
>>> 展示了命令,接下来的那一行显示的是输出
>
\n (打印新行)
>>> print ('Hello\nWorld')
Hello
World
\\(打印反斜杠本身)
>>> print('\\')
\
\''(打印双引号,这样这个双引号就不是字符串结尾的含义了)
>>>print (''I am 5'9\"ta1l'')
I am 5'9''tall
\'(打印单引号,这样这个单引号就不是字符串结尾的含义了)
>>> print ('I am 5\'9" tall')
I am 5'9" tall
如果不想在字母前添加\符号把字母转义为特殊字母,你可以通过在第一个引号前添加一个r,来使用未经处理的字符串。比如,如果不想把\t翻译成一个制表符号,你应该输入print(r’Hello\tWorld’)。你将会得到输出Hello\tWorld。