Python从菜鸟到高手(6):获取用户输入、函数与注释
1. 获取用户输入
要编写一个有实际价值的程序,就需要与用户交互。当然,与用户交互有很多方法,例如,GUI(图形用户接口)就是一种非常好的与用户交互的方式,不过我们先不讨论GUI的交互方式,本节会采用一种原始,但很有效的方式与用户交互,这就是命令行交互方式,也就是说,用户通过命令行方式输入数据,程序会读取这些数据,并做进一步的处理。
从命令行接收用户的输入数据,需要使用input函数。input函数接收一个字符串类型的参数,用于作为输入的提示。input函数的返回值就是用户在命令行中录入的值。不管用户录入什么数据,input函数都会以字符串形式返回。如果要获取其他类型的值,如整数、浮点数,需要用相应的函数转换。例如,字符串转换为整数的函数是int,字符串转换为浮点数的函数是float。
下面的例子要求用户在命令行中输入姓名、年龄和收入。其中年龄是整数,收入是浮点数。输入完这3个值后,会依次在控制台输出这3个值。由于年龄和收入都是数值,所以在获取用户输入值后,需要分别使用int和float函数将input函数的返回值分别转换为整数和浮点数。如果年龄和收入输入的是非数值,会抛出异常。
name = input("请输入你的名字:") # 输入姓名,并把输入的结果赋给name变量
age = int(input("请输入你的年龄:")) # 输入年龄,并把输入的结果赋给age变量
salary = float(input("请输入你的收入:")) # 输入收入,并把输入的结果赋给salary变量
print("姓名:", name) # 输出姓名
print("年龄:", age) # 输出年龄
print("收入:", format(salary, "0.1f")) # 输出收入
运行程序,分别输入姓名、年龄和收入,按回车键后,会输出如下图所示的内容。
2. 函数
在前面的文章中曾经介绍过使用幂运算符(**)来计算一个数的n次方。事实上,可以用一个函数来代替这个运算符,这个函数就是pow,该函数可以传入两个参数,如果要计算x的y次方,那么pow函数的第1个参数应该是x,第2个参数应该是y。pow函数返回计算结果。例如,下面的代码计算2的6次方。
result = pow(2,6) # 计算结果:64
像上面这行代码使用函数的方式叫做函数调用。函数相当于可以重用的代码段,如果在程序中有多处使用这段代码,就应该将这段代码放到函数中,这样既可以实现代码重用,还会避免代码冗余。我们可以想象,如果不使用函数,同样的代码出现在程序中的多个地方,一旦要修改这些代码,那简直就是噩梦,需要改很多个地方。
Python语言提供了很多内建的函数以及通过模块提供的更多的函数,这些函数可以很大程度上实现代码复用,例如,abs函数用于获取数值的绝对值,round函数浮点数取整(四舍五入),cmath模块的sin函数用于计算弧度的正弦。
下面的例子演示了如果使用Python语言内建的函数以及模块提供的函数实现代码复用。
from cmath import sin # 导入cmath模块中的sin函数
print(pow(2,5)) # 运行结果:32
print(abs(-12)) # 运行结果:12
print(sin(3.14 / 2)) # 运行结果:(0.9999996829318346+0j)
print(round(3.6)) # 运行结果:4
print(round(3.4)) # 运行结果:3
程序运行结果如下图所示。
3. 注释
任何编程语言都有注释的功能。所谓注释,就是用一段文本描述代码的作用、代码的作者或是其他需要描述的东西。注释在程序编译时被忽略,也就是说,注释只在源代码中体现,编译生成的二进制文件中是没有注释的。
在Python语言中,注释分为单行注释和多行注释。单行注释用井号(#)开头,多行注释用3个引号(单引号或双引号)括起来。如果使用单行注释,井号后面的所有内容在编译程序时都会被忽略,如果使用多行注释,被引号括起来的内容在编译程序时都会被忽略。
在使用某些Python IDE时,默认会用ASCII编码格式保存源代码文件,这时如果源代码文件中含有中文,在运行Python程序时就会出错,这时需要使用注释标注当前源代码文件保存的编码格式。
用utf-8编码格式保存源代码文件
# coding=utf-8
用gbk编码格式保存源代码文件
# coding=gbk
建议读者使用utf-8编码格式保存源代码文件,因为utf8不仅仅能保存中文,还可以保存其他国家的文字,如韩文、日文。所以utf-8编码格式使用更普遍。
下面的例子演示了Python语言中单行注释、多行注释的用法
# coding=utf-8 当前Python源代码文件以utf-8编码格式保存
""" 多行注释(用双引号括起来)
作者:李宁
地点:earth
"""
# 用于计算2的4次幂 单行注释
print(2 ** 4)
''' 多行注释(用单引号括起来)
这段代码用于计算一个表达式的值
(1 + 2) * 20
'''
print((1 + 2) * 20)