大家好,今天是21天python打卡第16天,今天我们继续分享python的经典案例。我们将了解到,什么是eval函数,什么是函数封装,以及while循环语句。我们在编程中学习,在编程中成长。
活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。
目录
我们通常使用摄氏度,华氏度我们一般不使用,我们要解决这个问题,我们只需要了解二者的转换关系,这里我们用到函数,那么这个函数有什么用呢。
python中eval函数作用是计算字符串中有效的表达式,并返回结果。将字符串转成相应的对象(如list、tuple、dict和string之间的转换)。利用反引号转换的字符串再反转回对象。
eval()函数用来执行一个字符串表达式,并返回表达式的值。eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果。eval函数可以实现list、dict、tuple与str之间的转化。
- #TempConvert.py
- 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("输入格式错误")
这个程序和上一个相比,就是加了一个循环语句,这里简单介绍一下循环语句。
if中可以在嵌套if,那么while中也可以嵌套while循环,从而实行一些特殊的效果。
- 语句:
- while 条件1:
- 满足条件1执行代码块1
- while 条件2:
- 满足条件1又满足条件2执行代码块2
while-else在条件语句为False时执行else语句块
- 语法:
- while 条件:
- 满足条件执行代码块
- else:
- 不满足条件执行代码块
- #TempConvert.py
- TempStr = input("请输入带有符号的温度值: ")
- while TempStr[-1] not in ['N','n']:
- 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("输入格式错误")
- TempStr = input("请输入带有符号的温度值: ")
这里我们接触到了一个新名词,函数封装,那么什么是函数封装呢?
函数封装是一种函数的功能,它把一个程序员写的一个或者多个功能通过函数、类的方式封装起来,对外只提供一个简单的函数接口。当程序员在写程序的过程中需要执行同样的操作时,程序员(调用者)不需要写同样的函数来调用,直接可以从函数库里面调用。程序员也可以从网络上下载的功能函数,然后封装到编译器的库函数中,当需要执行这一功能的函数时,直接调用即可。而程序员不必知道函数内部如何实现的,只需要知道这个函数或者类提供什么功能。
- #TempConvert.py
- def tempConvert(ValueStr):
- if ValueStr[-1] in ['F','f']:
- C = (eval(ValueStr[0:-1]) - 32)/1.8
- print("转换后的温度是{:.2f}C".format(C))
- elif ValueStr[-1] in ['C','c']:
- F = 1.8*eval(ValueStr[0:-1]) + 32
- print("转换后的温度是{:.2f}F".format(F))
- else:
- print("输入格式错误")
- TempStr = input("请输入带有符号的温度值: ")
- tempConvert(TempStr)
这里我们用两种方法编写蟒蛇程序,通过不同的方法,我们更好的掌握对python语言的应用。
- import turtle
- turtle.setup(650, 350, 200, 200)
- turtle.penup()
- turtle.fd(-250)
- turtle.pendown()
- turtle.pensize(25)
- turtle.pencolor("purple")
- turtle.seth(-40)
- for i in range(4):
- turtle.circle(40, 80)
- turtle.circle(-40, 80)
- turtle.circle(40, 80/2)
- turtle.fd(40)
- turtle.circle(16, 180)
- turtle.fd(40 * 2/3)
- from turtle import *
- setup(650, 350, 200, 200)
- penup()
- fd(-250)
- pendown()
- pensize(25)
- pencolor("purple")
- seth(-40)
- for i in range(4):
- circle(40, 80)
- circle(-40, 80)
- circle(40, 80/2)
- fd(40)
- circle(16, 180)
- fd(40 * 2/3)
在这里,我们可以清晰的看到两个运行结果一模一样,可见python编程语言的灵活性。
上面我们用了两种不同的方法编写了蟒蛇程序,接下来,我们用函数封装,绘制蟒蛇程序。
- import turtle
- def drawSnake(radius, angle, length):
- turtle.seth(-40)
- for i in range(length):
- turtle.circle(radius, angle)
- turtle.circle(-radius, angle)
- turtle.circle(radius, angle/2)
- turtle.fd(40)
- turtle.circle(16, 180)
- turtle.fd(40* 2/3)
- turtle.setup(650, 350, 200, 200)
- turtle.penup()
- turtle.fd(-250)
- turtle.pendown()
- turtle.pensize(25)
- turtle.pencolor("purple")
- drawSnake(40, 80, 4)
- turtle.done()
今天就分享到这里,下一篇,我们继续分享关于python的经典案例。