Python 用户输入
每个计算机应用程序在运行时都应该有一个接受用户数据的方法。这使得应用程序变得交互。根据应用程序的开发方式,应用程序可以接受用户输入,可以是在控制台中输入的文本 (sys.stdin) ,也可以是图形界面或基于Web的界面。在本章中,我们将学习Python如何在控制台中接受用户输入,并将输出结果也显示在控制台上。
Python解释器可以运行在交互模式和脚本模式。交互模式适用于快速评估,但不够高效。对于重复执行相同一组指令的情况,应该使用脚本模式。
让我们先编写一个简单的Python脚本开始。
#! /usr/bin/python3.11
name = "Kiran"
city = "Hyderabad"
print ("Hello My name is", name)
print ("I am from", city)
将上面的代码保存为hello.py并从命令行运行。以下是输出结果:
C:\python311> python var1.py
Hello My name is Kiran
I am from Hyderabad
该程序简单地打印出其中的两个变量的值。如果您反复运行该程序,每次都会显示相同的输出结果。要在该程序中使用另一个姓名和城市的值,您可以编辑代码,将姓名改为”Ravi”,将城市改为”Chennai”。每次您需要赋予不同的值时,都必须编辑该程序,保存并运行,这并非理想的方式。
input()函数
显然,您需要一种机制来在程序运行时为变量赋予不同的值。Python的input()函数正好能够完成这个任务。
Python的标准库包含input()函数。
>>> var = input()
当解释器遇到它时,它会等待用户从标准输入流(键盘)输入数据,直到按下Enter键。字符序列可以存储在字符串变量中供进一步使用。
读取Enter键后,程序继续执行下一条语句。让我们修改我们的程序,将用户输入存储在name和city变量中。
#! /usr/bin/python3.11
name = input()
city = input()
print ("Hello My name is", name)
print ("I am from ", city)
当你运行时,你会发现光标等待用户的输入。输入姓名和城市的值。使用输入的数据,输出将被显示。
Ravi
Chennai
Hello My name is Ravi
I am from Chennai
现在,程序中的变量没有被赋予任何特定的值。每次运行时,可以输入不同的值。因此,你的程序已经变得真正的交互式。
在input()函数内部,你可以给出一个 提示 文本,在运行代码时会出现在光标之前。
#! /usr/bin/python3.11
name = input("Enter your name : ")
city = input("enter your city : ")
print ("Hello My name is", name)
print ("I am from ", city)
当您运行程序时,将显示提示消息,基本上帮助用户输入内容。
Enter your name: Praveen Rao
enter your city: Bengaluru
Hello My name is Praveen Rao
I am from Bengaluru
数字输入
让我们编写一段Python代码,接受用户输入的矩形的宽度和高度,并计算面积。
#! /usr/bin/python3.11
width = input("Enter width : ")
height = input("Enter height : ")
area = width*height
print ("Area of rectangle = ", area)
运行程序,并输入宽度和高度。
Enter width: 20
Enter height: 30
Traceback (most recent call last):
File "C:\Python311\var1.py", line 5, in <module>
area = width*height
TypeError: can't multiply sequence by non-int of type 'str'
为什么你在这里会得到一个 TypeError ?原因是,Python总是将用户的输入读取为字符串。因此,width=”20″和height=”30″是字符串,显然你不能对两个字符串进行乘法运算。
要解决这个问题,我们将使用 int() ,另一个来自Python标准库的内置函数。它将一个字符串对象转换为一个整数。
要从用户那里接受一个整数输入,将输入读取为一个字符串,并使用int()函数将其转换为整数−
w= input("Enter width : ")
width=int(w)
h= input("Enter height : ")
height=int(h)
您可以将输入和类型转换语句结合在一起-
#! /usr/bin/python3.11
width = int(input("Enter width : "))
height = int(input("Enter height : "))
area = width*height
print ("Area of rectangle = ", area)
现在你可以在程序中输入任何整数值到这两个变量中-
Enter width: 20
Enter height: 30
Area of rectangle = 600
Python的 float() 函数将一个字符串转换为浮点数对象。以下程序接受用户输入并解析为浮点型变量rate,并计算用户输入的金额的利息。
#! /usr/bin/python3.11
amount = float(input("Enter Amount : "))
rate = float(input("Enter rate of interest : "))
interest = amount*rate/100
print ("Amount: ", amount, "Interest: ", interest)
程序要求用户输入金额和利率,并按照以下格式显示结果:
Enter Amount: 12500
Enter rate of interest: 6.5
Amount: 12500.0 Interest: 812.5
print() 函数
Python的print()函数是一个内置函数。它是最常用的函数,用于在Python控制台或标准输出(sys.stdout)中显示括号中给定的Python表达式的值。
print ("Hello World ")
括号内可以包含任意数量的Python表达式。它们必须用逗号分隔开。列表中的每个项可以是任何Python对象或有效的Python表达式。
#! /usr/bin/python3.11
a = "Hello World"
b = 100
c = 25.50
d = 5+6j
print ("Message: a)
print (b, c, b-c)
print(pow(100, 0.5), pow(c,2))
首次调用print()函数是显示一个字符串字面值和一个字符串变量。第二次调用则打印了两个变量的值及它们的减法运算结果。 pow() 函数用于计算一个数的平方根和一个变量的平方值。
Message Hello World
100 25.5 74.5
10.0 650.25
如果在print()函数的括号中有多个逗号分隔的对象,则值会由一个空格” “分隔。要使用其他字符作为分隔符,请为print()函数定义一个 sep 参数。该参数应在要打印的表达式列表之后。
在print()函数的下面输出中,变量由逗号分隔。
#! /usr/bin/python3.11
city="Hyderabad"
state="Telangana"
country="India"
print(city, state, country, sep=',')
可以在结果中看到 sep=’,’ 的效果 –
Hyderabad,Telangana,India
print()函数默认在末尾输出一个换行符(‘\n’)。因此,下一个print()语句的输出会在控制台的下一行出现。
city="Hyderabad"
state="Telangana"
print("City:", city)
print("State:", state)
输出显示为两行 −
City: Hyderabad
State: Telangana
为了让这两行出现在同一行上,定义第一个print()函数中的 end 参数,并将其设置为空格字符串” “。
city="Hyderabad"
state="Telangana"
country="India"
print("City:", city, end=" ")
print("State:", state)
两个print()函数的输出连续显示。
City: Hyderabad State: Telangana