python当中的eval()函数是起什么作用?
python当中的eval()函数是将字符串当成有效Python表达式来求值,并返回计算结果
成都网站建设哪家好,找创新互联建站!专注于网页设计、网站建设公司、微信开发、微信平台小程序开发、集团成都定制网站等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都格栅板等众多领域,积累了大量丰富的经验,同时也获得了客户的一致称誉!
x = 1
eval('x+1')
eval('x==1')
与之对应的repr函数,它能够将Python的变量和表达式转换为字符串表示:
repr(x+1)
repr(x+ ‘1’-1)('x=+=1')
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。
需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
python compare函数
cmp是python的内建函数.
cmp(x,y) 用于 compare x 和 y的值.
sort(cmp)只是用于说明,python中函数也是可以作为参数传入其他函数来进行调用的,排序的依据就是cmp.
【Python】基础总结
input("提示性信息")
如:
input("请输入数字")
因为 Python 没有特别人为规定数据类型,数据类型是由计算机进行判定,所以我们 input() 输入的数据均默认作为字符串处理,而如果要输入一些数字,着需要 eval() 评估函数对字符串进行评估,化为语句(数字)。
print(...)
默认空一行,如果想不空行,则
print(...., end = "")
特性:
进制:
特性:
浮点数间运算存在不确定尾数,不是 bug
如:0.1+0.3 → 0.4
0.1+0.2 → 0.30000000000000004
这是由于在计算机中一切数据都是化为二进制进行存储的,而有的浮点数并不能完全化为相等的二进制数,只能无限趋近于二进制数。
如:0.1 →
解决方法:
四舍五入:
例如:z = 1.23e-4 + 5.6e+89j
z.real 获得实部,z.imag 获得虚部
三种类型存在一种逐渐“扩展”或“变宽”的关系:
整数 → 浮点数 → 复数
特点:
字符串有 2 类共 4 种表示方法:
扩展:
使用[]获取字符串中一个或多个字符
使用[M:N:K]根据步长对字符串切片
{参数序号:格式控制标记}
右对齐
^ 居中对齐 | 槽设定的输出宽度 | 数字的千位分隔符 | 浮点数小数精度 或 字符串最大输出长度 | 整数类型
b , c , d , o , x , X
浮点数类型
e , E , f , % |
填充、对齐、宽度这三个一组,例如:
"{0:=^20}".format("PYTHON")
→ '=======PYTHON======='
"{0:*20}".format("BIT")
→ '*****************BIT'
"{:10}".format("BIT")
'BIT '
剩下的三个一组,例如:
"{0:,.2f}".format(12345.6789)
→ '12,345.68'
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}x".format(425)
→ '110101001,Σ,425,651,1a9,1A9'
"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
↓CloseCode↓
使用 raise 语句抛出一个指定的异常。
raise [Exception [, args [, traceback]]]
紧凑形式:适用于简单表达式的二分支结构
表达式1 if 条件 else 表达式2
例如:
↓CloseCode↓
↓CloseCode↓
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
由条件控制的循环运行方式
↓CloseCode↓
例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
↓CloseCode↓
可选参数例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
可变参数例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
在函数定义中,经常会碰到 *args(arguments) 和作为参数 **kwargs(keyword arguments)。
(事实上在函数中,和才是必要的,args 和 kwargs 可以用其他名称代替)
*args 是指不定数量的非键值对参数。
**kwargs 是指不定数量的键值对参数。
*args 作为作为元组匹配没有指定参数名的参数。而 **kwargs 作为字典,匹配指定了参数名的参数。
*args 必须位于 **kwargs 之前。
args( 通常紧跟一个标识符,你会看到a或者args都是标识符)是python用于接收或者传递任意基于位置的参数的语法。当你接收到一个用这种语法描叙参数时(比如你在函数def语句中对函数签名使用了星号语法),python会将此标识符绑定到一个元祖,该元祖包含了所有基于位置的隐士的接收到的参数。当你用这种语法传递参数时,标识符可以被绑定到任何可迭代对象(事实上,它也可以是人和表达式,并不必须是一个标识符),只要这个表达式的结果是一个可迭代的对象就行。
**kwds(标识符可以是任意的,通常k或者kwds表示)是python用于接收或者传递任意基于位置的参数的语法。(python有时候会将命名参数称为关键字参数,他们其实并不是关键字--只是用他们来给关键字命名,比如pass,for或者yield,还有很多,不幸的是,这种让人疑惑的术语目前仍是这门语言极其文化根深蒂固的一个组成部分。)当你接收到用这种语法描叙的一个参数时(比如你在函数的def语句中对函数签名使用了双星号语法)python会将标识符绑定到一个字典,该字典包含了所有接收到的隐士的命名参数。当你用这种语法传递参数时,标识符只能被绑定到字典(我ID号I它也可以是表达式,不一定是一个标识符,只要这个表达式的结果是一个字典即可)。
当你在定义或调用一个函数的时候,必须确保a和k在其他所有参数之后。如果这两者同时出现,要将k放在a之后。
lambda函数返回函数名作为结果
↓CloseCode↓
例如:
↓CloseCode↓
运行结果:
↓CloseCode↓
谨慎使用lambda函数
python 用eval(input)画这样四个圆 提示用户输入半径
python有两种编程方式,交互式和文件式。
交互式:对每个输入语句即时运行结果------适合语法练习
文件式:批量执行一组语句并运行结果------编程的主要方式
实例1:圆面积的计算(根据半径r计算圆面积)
上图明显是交互式运行的结果,如果想编辑文件式运行,则先编辑一个calcircle.py文件,将上述代码写进去。
然后输入代码 python calcircle.py,命令界面即可输出代码结果。
下面我们试试绘制多个同心圆的代码:
1 import turtle 2 turtle.pensize(2) 3 turtle.circle(10) 4 turtle.circle(40) 5 turtle.circle(80) 6 turtle.circle(160) 7 turtle.done()
运行结果,如下图所示
下面我们稍微分析一下这段代码
import turtle#导入海龟库 turtle.pensize(2)#设置画笔的大小 turtle.circle(10)#画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 turtle.circle(40) turtle.circle(80) turtle.circle(160) turtle.done()#必须是乌龟图形程序中的最后一个语句
关于turtle库的使用,之后还会提及,turtle库是python的自带库,绘制图像相对来说比较方便,容易理解
当然上述的代码也可以这样写
1 from turtle import * 2 pensize(2) 3 circle(10) 4 circle(40) 5 circle(80) 6 circle(160) 7 done()
大家很容易发现他们的不同,就是第一句的区别,关于import的用法也将在后续章节详细讲述。
下面我们来画一个难一点的图形
from turtle import * color('red','black')#前一个颜色是线条色,后一个是填充色 begin_fill()#从这里开始填充 for i in range(5):#画五笔就可以结束 fd(200) rt(144)#向右旋转144度 end_fill()#结束填充 done()
下面我们从一个简单的小程序来分析python的语法体系
我们大家都知道,华氏温度和摄氏温度之间的转换,我们可以用python编程实现
TempStr = input("请输入带有符号的温度值: ")#input显示的内容出现在屏幕上,且返回一个str类型的字符串 if TempStr[-1] in ['F', 'f']:#如果最后一个字符是F C = (eval(TempStr[0:-1]) - 32)/1.8#eval将字符串转换成数字 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("输入格式错误")
缩进:缩进表达程序的格式框架
1、严格明确:缩进是语法的一部分,缩进不正确程序运行错误
2、所属关系:表达代码间包含层次关系的唯一手段
3、长度一致:使用TAB键即可
python编程语言有一个重要的特点就是取消了{ }而用缩进的方式进行代码块的分割,初学者可能不习惯,多写几次就习惯了这种写法。
注释:不被程序执行的辅助性说明信息
单行注释:
#这是单行注释
多行注释:
1 ''' 这是多行注释 2 3 23333333333333 '''
变量:程序中用于保存和表示数据的占位符号
变量采用标识符(名字)来表示,关联标识符的过程叫命名
TempStr是变量名字
可以使用等号(=)向变量赋值或修改值,=被称为赋值符
TempStr="82F" #向变量TempStr赋值"82F"
命名规则:大小写字母、数字、下划线和汉字等字符
如:TempStr、Python_Great
注意事项:大小写敏感、首字符不能是数字、不与保留字相同
python与Python是不同的变量,123Python是不合法变量
保留字
被编程语言内部定义并保留使用的标识符
python语言有33个保留字(也叫关键字)
if,elif,else,in
保留字是编程语言的基本单词,大小写敏感
if是保留字,If是变量
保留字
数据类型
字符串、整数、浮点数、列表
10011101该如何解释呢?
这是一个二进制数字或十进制数字
作为二进制数字,10011101的值是十进制157
这是一段文本或者用逗号分隔3个数字
作为一段文本,逗号是文本中的一部分,一共包含10个字符
整数类型10011101
字符串类型:"10,011,101"
列表类型:[10,011,101]
字符串:由0个或多个字符组成的有序字符序列
由一对双引号或一对单引号表示
"helloworld"或'GOOD'
字符串是字符的有序序列,可以对其中字符进行索引
如"你"是"你好啊"这个字符串的第0个字符
python的字符串序号,正向递增,反向递减
字符串的使用
使用[ ]获取字符串中一个或多个字符
1 TempStr = input("请输入带有符号的温度值: ") 2 if TempStr[-1] in ['F', 'f']:#TempStr[-1]指的是最后一个字符 3 C = (eval(TempStr[0:-1]) - 32)/1.8#TempStr[0:-1]指的是字符串从第一个到最后一个之前的所有字符串 4 print("转换后的温度是{:.2f}C".format(C)) 5 elif TempStr[-1] in ['C', 'c']: 6 F = 1.8*eval(TempStr[0:-1]) + 32 7 print("转换后的温度是{:.2f}F".format(F)) 8 else: 9 print("输入格式错误")
数字类型:整数和浮点数
整数:数学中的整数
32或-89
浮点数:数学中的实数,带有小数部分
1.8或者-1.8或者-1.0
列表类型:由0个或多个数据组成的有序序列
列表使用[ ]表示,采用逗号分隔各元素
[ 'F' , 'f' ]表示列表里含义两个元素'F'和'f'
使用保留字in判断一个元素是否在列表中
TempStr[-1] in ['C' , 'c']判断前者是否与列表中的某个元素相同
赋值语句:由赋值符号构成的一行代码
赋值符号笔者之前提过,就是我们俗称的等于号,但等于号在编程语言中通常表示赋值,不表示等于号的含义。
1、赋值语句用来给变量赋予新的数据值
C = (eval(TempStr[0:-1]) - 32)/1.8 #右侧运算结果值赋值给C
2、赋值语句右侧的数据类型同时作用于变量
TempStr = input("请输入带有符号的温度值: ") #input返回一个字符串,所以TempStr也是字符串
分支语句:由判断条件决定程序运行方向的语句
1 if TempStr[-1] in ['F', 'f']:
如果条件为True则执行冒号后的语句
2、每个保留字所在行最后存在一个冒号:,是语法的一部分
冒号及后续缩进用来表示后续语句与条件的所属关系
函数:根据输入参数产生不同输出的功能过程
类似于数学中的函数,y=f(x)
print("输入格式错误") #打印出 输入格式错误
函数采用函数名(参数)的方式使用
1 eval(TempStr[0:-1])#TempStr[0:-1]是参数
python的输入输出
input():从控制台获得用户输入的函数
input()函数的使用格式:
1 变量=input (提示信息字符串)
用户输入的信息以字符串类型保存在变量中
1 TempStr=input("请输入") #TempStr保存用户输入的信息
输出函数print()
以字符形式向控制台输出结果的函数
print()函数的基本使用格式
1 print(拟输出字符串或字符串变量)
字符串类型的一对引号仅在程序内部使用,输出无引用
1 print("输入格式错误")#向控制台输出 输入格式错误
print函数的格式化:
1 print("转换后的温度是{:.2f}C".format(C))
{ }表示槽,后续变量填充到槽中
{:.2f}表示将变量C填充到这个位置时取小数点后2位
如果C的值是123.456789,则输出结果为123.45C
评估函数eval():去掉参数最外侧引号并执行余下语句的函数
eval的基本使用格式
1 eval(字符串或字符串变量)
eval("1") 1
python有哪些语法元素
Python基本语法元素
缩进
缩进表达程序的格式框架
·严格明确:缩进是语法的一部分,缩进不正确程序运行错误
·所属关系:表达代码间包含和层次关系的唯一手段
·长度一致:程序内一致即可,一般用4个空格或1个TAB
注释
不被程序执行的辅助性说明信息
·单行注释:以#开头,其后内容为注释
·多行注释:以'''开头和结尾
相关推荐:《Python教程》
保留字(关键字)
被编程语言内部定义并保留使用的标识符,Python语言有33个保留字。
标红色的保留字较少用到
数据类型
字符串
由0个或多个字符组成的有序字符序列
·字符串的序号
·TempStr[0:-1]得到除最后一个字符的字符串(切片)
数字类型
整数和浮点数
列表类型
由0个或多个数据组成的有序序列
·列表使用[ ]表示,采用逗号,分隔各元素
·使用保留字 in 判断一个元素是否在列表中
赋值语句
由赋值符号构成的一行代码
分支语句
由判断条件决定程序运行方向的语句
·每个保留字所在行最后存在一个冒号:
·冒号及后续缩进用来表示后续语句与条件的所属关系
函数
根据输入参数产生不同输出的功能过程,函数采用 函数名(参数) 方式使用
输入输出
输入函数 input()
·input():从控制台获得用户输入的函数
·变量 = input(提示信息字符串)
输出函数 print()
·print():以字符形式向控制台输出结果的函数
·格式化
把format()中的变量填进去
评估函数 eval()
去掉参数最外侧引号并执行余下语句的函数
分享标题:python评估函数,python评价分析
网站URL:http://lswzjz.com/article/hopcpp.html