A、在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。其他的函数不能引用它。
B、在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
C、在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内作用。
D、以上都不是
A、内层函数的调用
B、内层函数的引用
C、任意值
D、无返回值
不能实现函数之间数据传递的是( )。A.全局变量 B.局部变量 C.函数接口 D.函数返回值
最近在看C++,碰到一个静态变量的程序,有点搞不懂,求高手解释下:return那里返回到主函数的是a+5,然后再到主函数中继续把a=2带入计算于是2+5=7;还是说运行的时候直接把a=2带入到调用函数中计算,调用函数中计算完后直接返回一个7; 我只想知道在调用函数运行完后返回给主函数的是a+5还是7,就这么一个问题,求解释#include <iostream>#include <stdlib.h>using namespace std;int f(int a){auto int b=0; static int c=3; b=b+1; c=c+1; return a+b+c;}int main(){int a=2,i=1; cout<<f(a)<<" "; cout<<endl; system ("pause"); return 0;}
A、CreateObject("form")
B、?CreateObject("form")
C、m(1)=CreateObject("form")
D、S=CreateObject("form")
问题 Q1:是否使用过functools中的函数?其作用是什么?可用的回答 :python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。functools.cmp_to_key(func)functools.total_ordering(cls)functools.reduce(function, iterable, initializer)functools.partial(func, args, *keywords)functools.update_wrapper(wrapper, wrapped, assigned, updated)functools.wraps(wrapped, assigned, updated)问题 Q2:谈谈你对闭包的理解?可用的回答 : #闭包函数的实例 # outer是外部函数 a和b都是外函数的临时变量 def outer( a ): b = 10 # inner是内函数 def inner(): #在内函数中 用到了外函数的临时变量 print(a+b) # 外函数的返回值是内函数的引用 return inner if _name_ = _main_: # 在这里我们调用外函数传入参数5 #此时外函数两个临时变量 a是5 b是10 ,并创建了内函数,然后把内函数的引用返回存给了demo # 外函数结束的时候发现内部函数将会用到自己的临时变量,这两个临时变量就不会释放, 会绑定给 这个内部函数demo = outer(5) # 我们调用内部函数,看一看内部函数是不是能使用外部函数的临时变量 # demo存了外函数的返回值,也就是inner函数的引用,这里相当于执行inner函数 demo() # 15 demo2 = outer(7)问题 Q3:谷歌的无头浏览器?可用的回答 : 无头浏览器即headless browser,是一种没有界面的浏览器。既然是浏览器那么浏览器该有的东西它都应该有,只是看不到界面而已。 Python中selenium模块中的PhantomJS即为无界面浏览器(无头浏览器):是基于QtWebkit的无头浏览器。 问题 Q4:scrapy和scrapy-redis的区别?可用的回答 : scrapy是一个爬虫通用框架,但不支持分布式,scrapy-redis是为了更方便的实现scrapy分布式爬虫,而提供了一些以redis为基础的组件 为什么会选择redis数据库?因为redis支持主从同步,而且数据都是缓存在内存中,所以基于redis的分布式爬虫,对请求和数据的高频读取效率非常高 什么是主从同步?在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项, 让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave), 当客户端向从服务器发送SLAVEOF命令,要求从服务器复制主服务器时,从服务器首先需要执行同步操作,也即是,将从服务器的数据库状态更新至主服务器当前所处的数据库状态 问题 Q5:如何在Flask中访问会话?可用的回答 :会话基本上允许您记住从一个请求到另一个请求的信息。在一个Flask中,它使用签名cookie,以便用户可以查看会话内容并进行修改。如果只有密钥Flask.secret_key,则用户可以修改会话。问题 Q6:分布式爬虫主要解决什么问题?可用的回答 : 面对海量待抓取网页,只有采用分布式架构,才有可能在较短时间内完成一轮抓取工作。它的开发效率是比较快而且简单的。 问题 Q7:Python中的lambda是什么?可用的回答 :它是一个单独的表达式匿名函数,通常用作内联函数。问题 Q8:遇到过得反爬虫策略以及解决方法?可用的回答 : 反爬虫策略: 1.通过headers反爬虫 2.基于用户行为的发爬虫(同一IP短时间内访问的频率,封IP) 3.动态网页反爬虫(通过ajax请求数据,或者通过JavaScript生成) 4.对部分数据进行加密处理的(数据是乱码) 解决方法: 1. 对于基本网页的抓取可以自定义headers,添加headers的数据 2. 使用多个代理ip进行抓取或者设置抓取的频率降低一些, 3. 动态网页的可以使用selenium + phantomjs 进行抓取 4. 对部分数据进行加密的,可以使用selenium进行截图,使用python自带的pytesseract库进行识别,但是比较慢最直接的方法是找到加密的方法进行逆向推理。 问题 Q9:如何在Python中删除文件?可用的回答 :使用命令os.remove(filename) 删除文件 或 os.unlink(filename) 删除快捷方式问题 Q10:简单谈下GIL?可用的回答 : Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制, Python 在设计之初就考虑到要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。 对Python 虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同一时刻只有一个线程在运行。 在多线程环境中,Python 虚拟机按以下方式执行: 1. 设置GIL 2. 切换到一个线程去运行 3. 运行: a. 指定数量的字节码指令,或者 b. 线程主动让出控制(可以调用time.sleep(0)) 4. 把线程设置为睡眠状态 5. 解锁GIL 6. 再次重复以上所有步骤 在调用外部代码(如C/C+扩展函数)的时候,GIL 将会被锁定, 直到这个函数结束为止(由于在这期间没有Python 的字节码被运行,所以不会做线程切换)。 算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:单词阶梯题目描述如下:Given two words (beginWord and endWord), a
以下各项说法中,正确的是( )。
A.当通过引用传递参数时,函数创建一个变量以存储参数的值
B.当通过引用传递参数时,函数无法访问参数的值
C.当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值
D.当通过引用传递参数时,函数访问调用程序中参数的原始值
若程序中定义了局部变量与全局变量,则(11)。
A.在函数内只能访问局部变量,而不能访问全局变量
B.局部变量与全局变量的名字不得相同
C.若一个函数被多次调用,则其定义的局部变量必定分配同一个存储单元
D.函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量
一个函数的参数不能是对变量的引用,除非在 php.ini 中把()设为on.
若程序中定义了局部变量与全局变量,则 ______ 。
A.在函数内只能访问局部变量,而不能访问全局变量
B.局部变量与全局变量的名字不得相同
C.若一个函数被多次调用,则其定义的局部变量必定分配同一个存储单元
D.函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量
A.
B.
C.
D.
函数fun的返回值是一个整形数据的引用,有两个参数都是int,声明fun函数的原型是
____________________。