截止日期

实验目标

  • 学会定义函数,使用函数。学会导入在某个文件中定义的函数。
  • input获得值,然后通过eval或者int、float将其转换为相应的类型。
  • 学会使用列表:访问列表、append、遍历列表。

实验内容

任务1:函数的定义与调用

#这里是函数的定义,calcArea是函数名,我们可以通过函数名进行调用。
def calcArea(r): #r是输入参数,代表半径
return 3.14*r*r #return, 将计算结果返回到调用的地方
#上面只是定义。定义的时候并没有执行这段代码。 #常见错误1:错误的输入参数
calcArea(r)
#常见错误2:结果未输出
calcArea(3) #这里是函数的调用
x = calcArea(2) #调用函数,以2为入参,最后将返回结果赋值给x。但并没有输出。
print(x) #在控制台输出x
print(calcArea(1)) #将调用函数calcArea(1)的返回值直接输出
print(calcArea(3))
print(calcArea(5))
print(calcArea(7))

关键点:1.函数的定义与调用不一样,2.函数名要取的有意义,3.入参到底应该放几个参数。

作业1:

结合上述代码,简述使用函数的好处。

任务2:熟悉input,字符串与数值,print函数,eval函数

#第1步,字符串与数值的区别
a = 1 #数值
b = '1' #字符串,也可以a = "1"
print(a*5) #数值的乘法
print(b*5) #字符串的乘法 #第2步,使用input函数获得控制台输入的字符串
x = input("x=")
print(type(x)) #打印x的类型
print(x*3) #第3步,int与float将字符串转化为数值
y = int(input("y=")) #使用int函数将输入值转化为整型数值
print(type(y))
print(y*3) #常犯错误 print y*3
y = float(input('y=')) #使用float函数将输入值转化为带小数点的数
print(type(y))
print(y*3) #第4步,使用eval将字符串转换成表达式进行运算
line = input("请输入一个式子:") #比如输入 3+5,那么line存储了字符串'3+5'
#想要获得'3+5'所代表的式子的具体值呢?注意:'3+5'只是一个字符串,不能计算
z = eval(line) #这里,把你输入的'3+5'字符串变成一个式子,所以值等于?
print(eval('3')) #这里把字符串'3'转化为式子3,所以值等于数值的3
t = 3
print(eval('t+2')) #这里把字符串't+2'转化为式子t+2,前面t=3,所以该式子等于?
print(eval('temp+2')) #这里把字符串'temp+2'转化为式子temp+2,然而前面并没有定义temp,所以会发生什么情况?

任务3:列表的使用

变量只能存放一个值,比如a = 3。如果需要存放多个值呢?比如,存放所有圆形的半径。我们就需要列表,列表语法如下:

rList = []  #一个空的列表,里面没有任何值
rList.append(3) #往列表中加入3这个元素
rList.append(2) #往列表中加入2这个元素
print(rList) #输出rList中的所有值
print(len(rList)) #len函数求列表中元素的个数
for e in rList: #将rList中的所有值依次输出。详解:每次将rList中1个元素取出来放到e中,然后print(e)。
print(e)

3.1 通过input提示输入圆的半径,然后将值赋给r,然后调用求圆面积的函数,并输出其值。

3.2 通过input提示输入圆的半径的表达式,然后将表达式的值赋给r,然后调用求圆面积的函数,并输出其值。注意:与1.1不同,即使输入3+1.1,也可以计算成功。

任务4:编写圆形生成器程序(以文件的形式运行)

4.1 学会定义函数,求圆面积,对指定的r计算圆面积。 //辅导:函数定义与调用

4.2 通过input输入圆半径,然后调用4.1定义的函数。 //辅导:float函数或者eval

4.3 使用while循环,将5个r值放入一个列表rList。 //辅导:列表[],append,while

4.4 对rList中的每个r调用4.1定义的函数计算其面积。 //辅导:遍历列表,for e in rList:

4.5 使用turtle对rList中的每个r画出相应的圆。

4.6 进阶:让这些圆依次从左到右排列,且相切。

课上完成4.1-4.3。有余力的同学请继续完成4.4及以后。

作业2:

将以上代码存成文件运行。然后手写或者打印出来,为里面的每一行加注释。

任务5:运行并阅读温度转程序然后进行改写

内容:

编写一段程序可以将你从控制台输入的温度数值(带温度标志的)转换成华氏或摄氏度。

IPO分析:

I:带华氏或摄氏标志的温度值

P:根据温度标志选择适当的温度转换算法

O:带摄氏或华氏标志的温度值

算法:

C=(F-32)/1.8

F=C*1.8+32

C表示摄氏温度,F表示华氏温度。

示例:

输入:82F 输出:27.78C

输入:-30C 输出:-22.00F

例程:

TempStr = input("请输入带有符号的温度值: ")
if TempStr[-1] in ['F','f']:
C = (eval(TempStr[0:-1]) - 32)/1.8
print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F = 1.8*eval(TempStr[0:-1]) + 32
print("转换后的温度是{:.2f}F".format(F))
else:
print("输入格式错误")

在IDLE中新建文件TempConvert1.py,然后运行。

讲解:

1.TempStr = input("请输入带有符号的温度值" #在控制台显示提示信息,然后将用户从控制台输入的信息作为字符串赋值给TempStr

2.TempStr[-1] #取TempStr字符串的最后一个字符

3.TempStr[0:-1] #截取除从第0个字符到最后一个字符(不包含最后一个)之间的所有字符。

4.eval(TempStr[0:-1]) #将TempStr[0:-1]字符串转化为表达式运算,在这里指的是将字符串转换为数值(转化为数值后才能进行数学运算)。

任务(使用函数改造例程):

上面程序中,if..elif..else程序块负责处理传入的带温度标志的字符串并打印相应的提示信息,尝试定义一个函数TempConvert(ValueStr)取代上面的if..elif..else程序块。以后只需要调用TempConvert(ValueStr)函数,就可执行这段处理代码:

def TempConvert(valueStr):
#及一下这里是你的代码
if 输入的的温度是华氏:
#转换代码
return "转换后的温度是{:.2f}C".format(C)
#elif 输入的温度是摄氏度:
#转换代码
return "转换后的温度是{:.2f}F".format(F)
else:
return "输入格式错误"

讲解:

return ... 代表将...作为返回值返回给函数调用的地方。如,x = TempConvert(82F),执行完以后x的值就为“转换后的温度是27.78C”

作业4:

利用定义好TempConvert函数改造例程,使其看起来更简洁。

将以上代码存成文件运行。然后手写或者打印出来,为里面的每一行加注释。

进阶2(函数模块化改造):

编写函数有一个原则:函数的功能要单一,不要设计多用途的函数。函数TempConvert既进行温度转换(P),又将该值与提示信息“转换后的温度是”相绑定(O),这就使得后续对温度值的计算极不方便(比如后续希望比较温度的大小,需要将隐藏在提示信息的温度值抽取出来,如需要将“转换后的温度是27.78C”中的27.78C抽取出来,非常麻烦)。一般来说需将IPO相分离,P仅负责单纯的计算工作。改造函数TempConvert,让其只进行温度转换然后返回必要的值。如,对于输入82F返回27.78C,对于输入-30C返回-22.00F,对于输入错误则返回ERR,而无需返回格式化后的全部提示信息。利用改造好的TempConvert进一步改造例程。

实验与作业(Python)-02 Python函数入门与温度转换程序的更多相关文章

  1. 实验与作业(Python)-02 Python函数入门与温度转换程序(函数、input、eval、int、float、列表)

    截止日期 实验目标 学会定义函数,使用函数.学会导入在某个文件中定义的函数. input获得值,然后通过eval或者int.float将其转换为相应的类型. 学会使用列表:访问列表.append.遍历 ...

  2. 实验与作业(Python)-03 Python程序实例解析(函数、循环、range、turtle)

    截止日期: 要求: 下周实验课前上交,做好后在实验课上检查可获取平时分. 做出进阶或选做的的请用清晰的标致标识出来,方便老师批改 本次作业:可提交也可不提交.作业算平时成绩. 本次作业内容量较大,请组 ...

  3. 编程入门python之定义函数【转】

    编程入门python之定义函数 零基础学编程by学哥 2017-02-06 10:51 今天讲python函数. 输入参数求三角形或圆形或长方形的面积 先输入1个参数:形状类型 1=三角形 2=圆形 ...

  4. python之函数入门

    python之函数入门 一. 什么是函数 二. 函数定义, 函数名, 函数体以及函数的调用 三. 函数的返回值 四. 函数的参数 五.函数名->第一类对象 六.闭包 一,什么是函数 函数: 对代 ...

  5. Python入门之 Python内置函数

    Python入门之 Python内置函数 函数就是以功能为导向,一个函数封装一个功能,那么Python将一些常用的功能(比如len)给我们封装成了一个一个的函数,供我们使用,他们不仅效率高(底层都是用 ...

  6. 实验与作业(Python)-03 Python程序实例解析

    截止日期: 要求: 下周实验课前上交,做好后在实验课上检查可获取平时分. 做出进阶或选做的的请用清晰的标致标识出来,方便老师批改 本次作业:可提交也可不提交.作业算平时成绩. 本次作业内容量较大,请组 ...

  7. python函数入门

    知识内容: 1.函数的作用 2.函数的定义与调用 3.函数的返回值 4.函数的参数 5.局部变量与全局变量 6.作用域 一.函数的作用 1.复用代码 将可能重复执行的代码封装成函数,并在需要执行的地方 ...

  8. Python函数(入门6)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407970.html 本文出自:[Edwin博客园] Python函数 1. Python之调用函数 pri ...

  9. Python——函数入门(二)

    一.函数的参数 我们在定义函数时,可以定义形式参数(简称形参),这些形参的值在函数调用的时候才会确定,形参的值由调用者负责传入. 1.关键字参数 在Python中,函数的参数名并不是没有意义的,在调用 ...

随机推荐

  1. Item Pipeline

    当Item在Spider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行对Item的处理. 每个item pipeline组件(有时称之为"Item Pi ...

  2. javascript的变量声明、数据类型

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. urllib.parse

    1 url分解 import urllib.parse result = urllib.parse.urlparse('http://www.baidu.com') print(result) 结果为 ...

  4. linux搭建node环境超详细教程

    linux 环境搭建详细步骤 1.访问官方网址:https://nodejs.org/en/download/ 2.选择和你服务器版本相关的压缩包,复制下载链接 3.服务器登录ssh,(这里我用的服务 ...

  5. 开源协议瞎扯淡,什么是 MIT 协议?[转]

    图片来源:http://ruby-china.org/topics/15979

  6. 常见web安全隐患及解决方案

    Abstract 有关于WEB服务以及web应用的一些安全隐患总结资料. 1. 常见web安全隐患 1.1.       完全信赖用户提交内容 开发人员决不能相信一个来自外部的数据.不管它来自用户提交 ...

  7. Java 异常基础详解

    目录 1. Java 中的异常 1.1 什么是异常? 1.2 什么是异常处理? 1.2.1 异常处理的优势 1.3 Java 异常类的层次结构 1.4 异常类型 1.5 检查和未检查异常之间的区别 1 ...

  8. pat 1001 A+B Format

    题目链接:传送门 题目简述: 1. 给定两个整数值a,b: 2.范围-1000000 <= a, b <= 1000000: 3.按指定格式输出结果 例:-100000 9 输出: -99 ...

  9. 树莓派控制高电平蜂鸣器(c语言+新手向)

    话不多说,先上代码: #include <wiringPi.h> #include <stdio.h> #include <sys/time.h> #define ...

  10. [NOIp 2014]解方程

    Description 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) Input 输入文件名为equation .i ...