第一个程序
条评论一、前言
编程,犹如写剧本——创作一段台词和动作清单,让演员日复一日地照做。本节内容将接触Python函数,可以在交互式环境中反复调用函数,让它每次都执行预设的“脚本”(脚本也可指整个程序)。编程从学会编写函数开始,涵盖如下内容
-
使用函数来计算公式
-
获取字符串和数字输入
-
设置输出格式
二、定义函数
(一)规则
- 使用关键字 def 来自定义函数
- 具体格式:函数名(参数名): (冒号必须输入)
- 回车,IDLE中将自动缩进后续代码行,继续使用 (对于python中的代码缩进,遵循一套标准,尽量不要随意修改!)
- 编写计算逻辑式
- 返回值,用return
(二)示例
-
温度计量有两种方式,一种是我们熟知的摄氏温度,另一种是华氏温度,两者间存在换算关系。1华氏度=1摄氏度*1.8+32
-
对于这样一个换算,给出摄氏温度,心算就能算出华氏温度。或者,给出华氏温度,倒算摄氏温度。但如果用程序来算,如何实现呢?
-
定义一个函数名convert,参数名cels (函数名,意为转换),返回值 fahr 。该自定义函数如下:
1
2
3>>>def convert(cels):
fahr=cels*1.8+32
return fahr这样,在IDLE中直接调用convert(cels)函数,输入cels的值,可直接得到对应的摄氏温度
1
2>>>convert(30):
86 -
要调用函数,必须先定义它!函数中的参数可以有多个,必须要用逗号来分隔他们。
(三)打印消息
-
目前调用自定义函数后,返回的结果比较简陋,想让其返回对用户友好的信息,用python内置的print函数。该函数已定义好,可以直接调用:
1
2>>>print('30摄氏度对应的华氏温度是:',fahr) # 接上例
30摄氏度对应的华氏温度是:86
(四)示例
-
定义一元二次方程的求解公式:ax2+bx+c=0
关于一元二次方程,我们学过其有两个解,求解公式是:
定义一个函数quad,具体代码为:
1
2
3
4
5
6>>>def quad(a,b,c):
determ=(b*b-4*a*c)**0.5
x1=(-b+determ)/(2*a)
x1=(-b-determ)/(2*a)
return x1,x2
>>>
三、获取字符串和数字输入
(一)获取字符串输入
- 编写真正的程序,需要向用户询问额外的信息。Python提供了内置函数input, 其语法为: string_var=input(prompt_string)
基本作用是获取并返回一个文本字符串。文本字符串就是单词,更准确地说是字母和其他字符
- 示例:
1 | >>>def main(): |
运行结果为:
1 | >>>main() |
(二)获取数值输入
-
input函数获取的是文本字符串,如果要执行计算,涉及到数值,必须先将其转换为数字格式。可以根据处理的是整数,还是浮点数,使用int( )和float( )函数,格式如下:
var_name=int(input(prompt_message))
var_name=float(input(prompt_message))
-
示例:
1
2
3
4>>>def main():
n=int(input('Enter a number: '))
print('Twice of thar is:',n*2)
>>>运行过程及结果:
1
2
3>>>main()
10
Twice of that is: 20int()、float() 函数分别是内置数据类型整数和浮点数的名称,可以对输入的数字进行转换(前提是能够进行转换)
-
结合字符输入与数值输入功能,重写一个上述一元二次方程的求解代码。这次解x2-x-1=0这个方程
1
2
3
4
5
6
7
8>>>def main():
a=float(input('Enter the value for a: '))
b=float(input('Enter the value for b: '))
c=float(input('Enter the value for c: '))
determ=(b*b-4*a*c)**0.5
x1=(-b+determ)/(2*a)
x2=(-b-determ)/(2*a)
print("Answers are",x1,'and',x2)运行过程及结果为:
1
2
3
4
5>>>main()
Enter the value for a: 1
Enter the value for b: -1
Enter the value for c: -1
Answers are 1.618033988749895 and -0.6180339887498948以上两个答案为被称为黄金比例的数字:phi与1/phi
四、设置输出格式
-
内置函数print按照顺序打印其所有参数。默认情况下会用一个空格将打印的参数分隔开来。但可使用可选参数sep将分隔符指定为其他字符。例如,sep=’ '指定不使用任何分隔符
-
还可使用指定格式的字符串。e.g: fss=‘The square root {} is {}.’
然后调用方法format来生成输出的字符串:format_spec_string.format(argument)
e.g: fss.format(25,5)