Python内置函数ord(x)的作用是()

Python内置函数ord(x)的作用是(),第1张

Python内置函数ord(x)的作用是()

A将整数x转换为八进制字符串

B获取用户输入,其中x是字符串,作为提示信息

C返回一个字符x的Unicode编码值

D将变量x转换成整数

正确答案:C

函数本质上是全局的,因为定义一个函数的目的就是要被另外的函数调用;如果不加声明的话,一个文件中的函数既可以被本文件中其他函数调用,也可以被其他文件中的函数调用,但是也可以指定某些函数不能被其他文件调用;根据函数能否被其他源文件调用,将函数区分为 内部函数 和 外部函数;

内部函数

如果一个函数只能被本文件中其他函数调用,则称为 内部函数;在定义内部函数时,在函数名和函数类型的前面加上 static ,即:

static 类型名 函数名(形参表);

例如:

static int fun(int a, int b);

复制

内部函数又称为 静态函数;使用内部函数,可以使函数的作用域只局限于所在文件,这样即使在不同的文件有同名的函数也互不干扰;

通常把只能由本文件使用的函数和外部变量放在文件的开头,前面都冠以 static 使之局部化,其他文件不能引用;

外部函数

如果在定义函数时,在函数的首部加上关键字 extern ,则此函数是外部函数;如下:

extern int fun(int a, int b);

复制

这样函数 fun 就可以为其他文件调用;C 语言规定,如果在定义函数时省略 extern ,则默认为外部函数,但是在调用此函数的其他文件中,需要对此函数进行声明!!在对此函数作声明时,要加关键字 extern ,表示该函数 是在其他文件中定义的外部函数;

///file1c

#include <stdioh>

int main(void)

{

extern int max(int a, int b);//函数声明

int c = 5, d = 10;

printf("max = %d\n", max(c, d));

return 0;

}

///file2c

int max(int a, int b)

{

return(a>ba:b);

}

复制

在file1c 中声明函数 max 是外部的,此时就没有问题了;实际上,使用 extern 声明就能够在本文件调用其他文件中定义的函数,或者说把该函数的作用域扩展到本文件;

由于函数在本质上是外部的,在程序中经常要调用其他文件中的外部函数,为了方便,C语言允许在声明函数时省写 extern,如上面的在 max 前省略 extern 也是可以的;

内置函数,在python帮助文档中:Build-in Functions

在Python提示符下,输入下面语句,就会显示Python提供的内置函数列表

>>>dir('__builtins__')

abs(_) 内置函数,绝对值或复数的模。

chr() 以单字节整数为参数,返回一个单字符的字符串,其内容是与之对于的ASCII字符。如chr(69)返回'E'。

cmp() 比较字符串,cmp('Xiao','Jian')返回1

coerce() (可以看成一个数值类型转换函数)有两个参数,都是数字,返回这两个数字的一个列表,将这两个数字的数据类型统一。如coerce(1,2j),返回(1+0j,2j)

complex() 内置函数,把……转换成复数,如complex('2')返回(2+0j),complex('2+3j')返回(2+3j)。

divmod() 内置函数,有两个参数,返回(商,余数)。如divmod(10,25),返回(40,00)。

filter(function,list) 把函数应用于list中的每一项,并返回 从函数中返回真值的项。注:function可以为None,此时删除list中的0或空项。

float() 内置函数,把……转换成浮点数。

floor() 在math模块内,需要import math。向下取整,即向x轴负方向取整。如mathfloor(19)返回1,mathfloor(-25)返回-3。

hash() 散列功能,词典键的最精确功能需求是它一定是可散列的。对象的散列值是半唯一的、内部生成的数字,它可用于快速比较。

int() 内置函数,把字符串或者小数转换为一个整数。直接去掉小数部分。如int(53)返回5,int('5')返回5。

len(x) 序列x的长度

long() 内置函数,把数字 或 代表整数的字符串 转换成长整型

map(function,list[,list,])

max() 找出字符串中最大的字符。如:min('find the minimum character'),返回' ',即空格。

min() 找出字符串中最小的字符。如:max('find the maximum character'),返回'x'。

oct() 将十进制数转换成八进制,再变成字符。

ord() 参数是单个的ASCII字符,返回该ASCII字符对应的整数值,如ord('a')返回97。

pow() 内置函数,乘方。如果有第三个参数,则表示乘方的结果对第三参数取余,如pow(2,3)返回8,pow(2,3,4)返回0。

print 输出到窗口

range() 生成一个向量,例如range(m,n,d),从m到n,步长为d;range(m)则生成0:m-1,步长为1的向量。

raw_input() 输入函数,参数为字符串,作为输入时的提示语句。返回值为字符串。

reduce(func)

round() 内置函数,对数字进行四舍五入,第二个参数表示精确到小数点后指定的位数,默认值为0。如round(24)返回2,round(1398,2)返回140。

type() 返回某数据的类型

在Python语言中,可以在函数中定义函数。 这种在函数中嵌套定义的函数也叫内部函数。我们来看下面的代码:

上述代码中,定义了函数greet,在函数greet内部又定义了一个函数inner_func, 并调用该函数打印了一串字符。

我们可以看到,内部函数inner_func的定义和使用与普通函数基本相同。需要注意的是变量的作用域,在上述代码中,函数参数name对于全局函数greet是局部变量,对内部函数inner_func来说则是非局部变量。内部函数对于非局部变量的访问规则类似于标准的外部函数访问全局变量。

从这个例子我们还可以看到内部函数的一个作用,就是通过定义内部函数的方式将一些功能隐藏起来,防止外部直接调用。常见的场景是,在一个复杂逻辑的函数中,将一些小的任务定义成内部函数,然后由这个外层函数使用,这样可以使代码更为清晰,易于维护。这些内部函数只会在这个外层函数中使用,不能被其他函数或模块使用。

在Python语言中, 函数也是对象,它可以被创建、赋值给变量,或者作为函数的返回值。我们来看下面这个例子。

在上述代码中,在函数gen_greet内部定义了inner_func函数,并返回了一个inner_func函数对象。外部函数gen_greet返回了一个函数对象,所以像gen_greet这样的函数也叫工厂函数。

在内部函数inner_func中,使用了外部函数的传参greet_words(非局部变量),以及函数的参数name(局部变量),来打印一个字符串。

接下来,调用gen_greet("Hello")创建一个函数对象say_hello,紧接着调用say_hello("Mr Zhang"),输出的结果为:Hello, Mr Zhang!

同样的,调用gen_greet("Hi")创建一个函数对象say_hi,调用say_hello("Mr Zhang"),输出的结果为:Hi,Tony!

我们可以发现,gen_greet返回的函数对象具有记忆功能,它能够把所需使用的非局部变量保存下来,用于后续被调用的时候使用。这种保存了非局部变量的函数对象被称作闭包(closure)。

那么闭包是如何实现的呢?其实并不复杂,函数对象中有一个属性__closure__,它就是在创建函数对象时用来保存这些非局部变量的。

__closure__属性是一个元组或者None类型。在上述代码中,我们可以通过下面方式查看:

函数的嵌套所实现的功能大都可以通过定义类的方式来实现,而且类是更加面向对象的代码编写方式。

嵌套函数的一个主要用途是实现函数的装饰器。我们看下面的代码:

在上述代码中,logger函数返回函数with_logging,with_logging则是打印了函数func的名称及传入的参数,然后调用func, 并将参数传递给func。其中的@wraps(func)语句用于复制函数func的名称、注释文档、参数列表等等,使得with_logging函数具有被装饰的函数func相同的属性。

代码中接下来用@logger对函数power_func进行修饰,它的作用等同于下面的代码:

可见,装饰器@符其实就是上述代码的精简写法。

通过了解了嵌套函数和闭包的工作原理,我们在使用过程中就能够更加得心应手了。

楼上的回答明显文不对题,不知怎么能够被推荐,正解如下:

内部函数,或者称为内嵌函数,算是pascal(delphi)的一个特征了,其好处有二:

1、通过局部化,体现一种封装思想。一个函数的内嵌函数如同它的局部变量一样,对其外部逻辑不可见,这样能够屏蔽外界非期望的调用或访问,保证代码逻辑的安全性。另外一个好处也很明显,不同函数的内嵌函数允许同名,就像许多函数或过程中的循环变量都用i、j一样,不用费神去给变量、函数等起不同的名字,尤其是逻辑功能接近的函数,相信大家都有这样的体会,在编码实现的过程中,起名字是个让人挠头的事儿。本人的经验是:作用范围宽广的,名字要清楚地表意,一般较长,而作用范围很小的,命名不需要太讲究,因为讲究起来成本不小。

2、每个内嵌函数可以“见到”其父层函数的参数和定义在前面的局部变量,这样,内嵌函数能够控制的资源就多一些,不必要所有的东西都通过参数传递,在一定程度上能够节省参数传递的性能开销,这个问题的性质与“怎样审慎地使用全局变量?”相同,简单地全面否定全局变量也并非在任何场合都有好处。《代码大全》是一本非常棒的数,其中就有关于全局变量的适用性探讨,按此书的描述,使用全局变量可以消除“穿梭数据”。

static可应用于应用于内部变量、外部变量和函数。应用于内部变量时,其作用是用来指定变量的存储类别为静态变量。应用于外部变量和函数时,其作用是限制变量或函数的作用范围仅限于外部变量或函数所在的源文件。

1、在整个程序运行的过程中,无论静态内部变量所在的函数被调用了多少次,静态内部变量只运行一次初始化,即在程序运行时完成的。

2、在函数的两次调用期间,静态内部变量所在存储单元不被释放,因而当前次函数调用执行时其值会被保存下来,下次调用时该值依然存在。即静态内部变量的值在从一次函数调用到下一次函数调用到下一次函数调用到下一次函数调用之间保持不变。

3、 默认情况下,外部变量的作用域是从定义变量的位置到所在源文件的末尾。

一、函数分为内部函数和外部函数

当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。

1、内部函数(又称静态函数)

如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。

定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:

static 函数类型 函数名(函数参数表){}

关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。

使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。

2、外部函数

外部函数的定义:在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:

[extern] 函数类型 函数名(函数参数表){}

调用外部函数时,需要对其进行说明:

[extern] 函数类型 函数名(参数类型表)[,函数名2(参数类型表2)];

二、C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

扩展资料:

static的作用

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。

1、最重要的一条:隐藏。

同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。

加了static,就会对其它源文件隐藏。例如在a和msg的定义前加上static,mainc就看不到它们了。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏,而对于变量,static还有下面两个作用。

2、static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。

3、static的第三个作用是默认初始化为0。其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员的工作量。比如初始化一个稀疏矩阵,我们可以一个一个地把所有元素都置0,然后把不是0的几个元素赋值。

如果定义成静态的,就省去了一开始置0的 *** 作。再比如要把一个字符数组当字符串来用,但又觉得每次在字符数组末尾加’\0’太麻烦。如果把字符串定义成静态的,就省去了这个麻烦,因为那里本来就是’\0’。

最后对static的三条作用做一句话总结。首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。

-static函数

-c语言

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12162817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存