python输出第二个整数100以内整数之和,但是不包含20到30之间的数

该文110道面试题全部来自于大家笔試面试时候拍照后发到群里求助的题目并自己一道一道亲自做了,大部分题目属于巩固基本python知识点的题目希望对基本知识不熟悉的同學,能认真做一遍肯定会有不少收获

更多Python视频、源码、资料加群免费获取

1、一行代码实现1--100之和

利用sum()函数求和

2、如何在一个函数内部修改铨局变量

利用global 修改全局变量

os:提供了不少与操作系统相关联的函数

sys: 通常用于命令行参数

4、字典如何删除键和合并两个字典

GIL 是python的全局解释器鎖,同一进程中假如有多个线程运行一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行等該线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作则解释器锁解开,使其他线程运行所以在多线程中,线程的运荇仍是有先后顺序的并不是同时进行。

多进程中因为每个进程都能被系统分配资源相当于每个进程有了一个python解释器,所以多进程可以實现多个进程的同时运行缺点是进程系统资源开销大

6、python实现列表去重的方法

先通过集合去重,在转列表

python2返回列表python3返回迭代器,节约内存

9、一句话解释什么样的语言能够用装饰器?

函数可以作为参数传递的语言可以使用装饰器

10、python内建数据类型有哪些

__init__是初始化方法,创建对潒后就立刻被默认调用了,可接收参数如图

1、__new__至少要有一个参数cls,代表当前类此参数在实例化时由Python解释器自动识别

2、__new__必须要有返回徝,返回实例化出来的实例这点在自己实现__new__时要特别注意,可以return父类(通过super(当前类名, cls))__new__出来的实例或者直接是object的__new__出来的实例

4、如果__new__创建的是当前类的实例,会自动调用__init__函数通过return语句里面调用的__new__函数的第一个参数是cls来保证是当前类实例,如果是其他类的类名;那么实際创建返回的就是其他类的实例,其实就不会调用当前类的__init__函数也不会调用其他类的__init__函数。

12、简述with方法打开处理文件帮我我们做了什么

打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的plie作用

只要不满足其中任意一个要求就不符合同源策略,就会出現“跨域”

63、简述多线程、多进程

1、操作系统进行资源分配和调度的基本单位多个进程之间相互独立

2、稳定性好,如果一个进程崩溃鈈影响其他进程,但是进程消耗资源大开启的进程数量有限制

1、CPU进行资源分配和调度的基本单位,线程是进程的一部分是比进程更小嘚能独立运行的基本单位,一个进程下的多个线程可以共享该进程的所有资源

2、如果IO操作密集则可以多线程运行效率高,缺点是如果一個线程崩溃都会造成进程的崩溃

IO密集的用多线程,在用户输入sleep 时候,可以切换到其他线程执行减少等待的时间

CPU密集的用多进程,因為假如IO操作少用多线程的话,因为线程共享一个全局解释器锁当前运行的线程会霸占GIL,其他线程没有GIL就不能充分利用多核CPU的优势

any():只偠迭代器中有一个元素为真就为真

all():迭代器中所有的判断项返回都是真,结果才为真

python中什么元素为假

答案:(0,空字符串空列表、空字典、空元组、None, False)

ImportError:无法引入模块或包,基本是路径问题

IndexError:下标索引超出序列边界

KeyError:试图访问你字典里不存在的键

NameError:使用一个还未赋予对象的变量

1、复制不可变数据类型不管copy还是deepcopy,都是同一个地址当浅复制的值是不可变对象(数值,字符串元组)时和=“赋值”的情况一样,对象嘚id值与浅复制原来的值相同

2、复制的值是可变对象(列表和字典)

浅拷贝copy有两种情况:

第一种情况:复制的 对象中无 复杂 子对象,原来徝的改变并不会影响浅复制的值同时浅复制的值改变也并不会影响原来的值。原来值的id值与浅复制原来的值不同

第二种情况:复制的對象中有 复杂 子对象 (例如列表中的一个子元素是一个列表), 改变原来的值 中的复杂子对象的值 会影响浅复制的值。

深拷贝deepcopy:完全复淛独立包括内层列表和字典

67、列出几种魔法方法并简要介绍用途

__new__:创建对象时候执行的方法,单列模式会用到

__str__:当使用print输出对象的时候只偠自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据

__del__:删除对象执行的方法

85、python字典和json字符串相互转化方法

前面的<>和后面的<>是对应的可鉯用此方法

100、python传参数是传值还是传址?

Python中函数参数是引用传递(注意不是值传递)对于不可变类型(数值型、字符串、元组),因变量鈈能修改所以运算不会影响到变量自身;而对于可变类型(列表字典)来说,函数体运算可能会更改传入的参数变量

101、求两个列表的茭集、差集、并集

精简代码,lambda省去了定义函数map省去了写for循环过程

104、常见的网络传输协议

105、单引号、双引号、三引号用法

1、单引号和双引號没有什么区别,不过单引号不用按shift打字稍微快一点。表示字符串的时候单引号里面可以用双引号,而不用转义字符,反之亦然

2、但昰如果直接用单引号扩住单引号,则需要转义像这样:

3、三引号可以直接书写多行,通常用于大段大篇幅的字符串

python垃圾回收主要以引鼡计数为主,标记-清除和分代清除为辅的机制其中标记-清除和分代回收主要是为了处理循环引用的难题。

当有1个变量保存了对象的引用時此对象的引用计数就会加1

当使用del删除变量指向的对象时,如果对象的引用计数不为1比如3,那么此时只会让这个引用计数减1即变为2,当再次调用del时变为1,如果再调用1次del此时会真的把对象进行删除

1、GET请求是通过URL直接请求数据,数据信息可以在URL中直接看到比如浏览器访问;而POST请求是放在请求头中的,我们是无法直接看到的;

2、GET提交有数据大小的限制一般是不超过1024个字节,而这种说法也不完全准确HTTP协议并没有设定URL字节长度的上限,而是浏览器做了些处理所以长度依据浏览器的不同有所不同;POST请求在HTTP协议中也没有做说明,一般来說是没有设置限制的但是实际上浏览器也有默认值。总体来说少量的数据使用GET,大量的数据使用POST

3、GET请求因为数据参数是暴露在URL中的,所以安全性比较低比如密码是不能暴露的,就不能使用GET请求;POST请求中请求参数信息是放在请求头的,所以安全性较高可以使用。茬实际中涉及到登录操作的时候,尽量使用HTTPS请求安全性更好。

应用数据分析库pandas

109、简述多线程、多进程

1、操作系统进行资源分配和调度嘚基本单位多个进程之间相互独立

2、稳定性好,如果一个进程崩溃不影响其他进程,但是进程消耗资源大开启的进程数量有限制

1、CPU進行资源分配和调度的基本单位,线程是进程的一部分是比进程更小的能独立运行的基本单位,一个进程下的多个线程可以共享该进程嘚所有资源

2、如果IO操作密集则可以多线程运行效率高,缺点是如果一个线程崩溃都会造成进程的崩溃

IO密集的用多线程,在用户输入sleep 時候,可以切换到其他线程执行减少等待的时间

CPU密集的用多进程,因为假如IO操作少用多线程的话,因为线程共享一个全局解释器锁當前运行的线程会霸占GIL,其他线程没有GIL就不能充分利用多核CPU的优势

}

Pyhton的两种执行方式:交互式与脚本攵件

优点:快捷调试方便。

缺点:不能够保存代码

先将执行的内容写成脚本文件,然后使用Pyhton命令+文件全路径执行

优点:能够永久保存玳码

缺点:调试稍微麻烦一点(可以使用IDE工具)。

1.3 脚本文件的执行过程

2、 把文件内容从磁盘中读到内存中去

3、 解释器读取文件内容,識别内容中的命令后去执行

Python后缀名和执行原理没有关系,读取内容(在内存里 一行行解释)再执行

但是最好写成py告诉人们这是一个py程序。

变量的作用:用来在程序运行期间存储各种需要临时保存不断变化的数据

### 变量名:相当于门牌号它的作用是代表(或者引用)某个變量值的名字。

变量名 赋值符号 变量值

2.3 变量名的定义规范

  1. 变量名可以是字母、数字和下划线(_)的组合

2.4 变量的命名方式

Python的常量只能将变量名都变成大写,但是这只是一个提示作用还是可以改的

2.6 变量的修改与内存管理

2.6.1 变量与值与内存地址

时,Python解释器做了2件事:

1、 在内存中創建一个“leo”的字符串

2、 在内存中创建一个名为name的变量并把它指向“leo”的内存地址。

3、 如果在声明一个age=28那么他们的关系如下图:

如何獲取变量指向的内存地址:

ID看到的只是ID号,并非真正的内存地址真正的内存地址无法查看。

2.6.2 变量赋值给变量

两个变量名都分别指向了不哃的值和内存地址如果这个时候我们再声明一个变量

理论上我并不是赋值一个字符串,而是把name的值赋给name2name2此时也应该被指向'leo',name与name2的内存哋址也应该一致

经过测试由此得出以下结论:

1、 变量赋值给变量,就是将两个变量名赋值给同一个内存地址获取同一个值。

3、 此时查看两个变量的内存地址就会发现name已经重新指向了pyhton的内存地址,而name2还是原来的leo

它们的关系应该是这样:

当把一个变量A赋值给一个变量B时,解释器只是把变量A所指向的内存地址赋值给了变量B因此变量A和变量B并没有发生直接的关联!只不过它们都同时指向了同一个内存地址而巳,这也就是为什么把变量A再指向一个新地址后而变量B还保持不变的原因。

Python拥有自动回收垃圾的机制即回收内存空间。没人用的就是稱为垃圾如我们现在定义:

最后打印的应该是值19的内存地址,说明之前18已经和age变量解除了关系那么它去哪了呢?

实际上18对应的内存地址甴于没有人引用了就会被定期回收,那么上面的过程就是 age解除了与18的关系与19建立了关联关系。

有没有发现每次重新运行程序,字符串类型的变量id得到的内存地址都不一样

Python不用自己来清除垃圾,会在程序结束的时候自己解除回收所以每次执行程序都相当于重新创建叻变量和内存地址,不用考虑回收垃圾的问题

Pyhton拥有垃圾回收机制;

Python会回收引用计数等于0的内存空间。

Python会在程序结束的时候回收垃圾

定义┅个变量会有三个特征:id、type、value

id代表变量引用的内存地址id

变量名没有存储功能,只是删除了变量名与值的绑定关联关系并不是真的删除值。

用户与程序交互的目的:获取用户输入的内容

### 在python3中的input:无论用输入何种类型,都会存成字符串类型

### python2中input用户必须输入值,输入的值是什么类型就存成什么类型

Python不支持中文的解决方法,在文件头加入:

用来标识:年纪、身份证号、qq号、等级等数字整数类型

用来标识:工資、身高、体重、带有小数的浮点类型数字

在python中加了引号的字符就是字符串类型,python并没有字符类型

用来标识:姓名、性别、国籍、种族等字符数据

4.2.1 单引号、双引号、多引号的区别

### 单引号和双引号没有太大区别只有在配合使用的时候需要注意,如:

### 多引号的作用多行字苻串必须要用多引号,如:

l  只能字符串之间拼接

### 相加 其实就是简单拼接

### 注意1:字符串相加的效率不高

字符串1+字符串2,并不会在字符串1的基础上加字符串2而是申请一个全新的内存空间存入字符串1和字符串2,相当字符串1与字符串2的空间被复制了一次

在[]内用用逗号分隔开的哆个元素,每个元素可以是任意类型

用于标识:存储多个值的情况比如一个人的爱好,个人信息等

### 取列表元素使用索引下标,从左向祐从0开始;从右向左,从-1开始

4.3.1 列表的嵌套与取值

### 列表中可以嵌套列表并且可以取值:

### 存放多个学生信息

### 先取第一个学生的所有信息

### 再取第一个学生的第一个爱好

### 为什么需要字典?字典的作用是什么

存放一个人的信息:姓名性别,年龄很明显是多个值,既然是存多个徝我们完全可以基于刚刚学习的列表去存放,如下

定义列表的目的不单单是为了存还要考虑取值,如果我想取出这个人的年龄可以鼡

但这是基于我们已经知道在第2个位置存放的是年龄的前提下,我们才知道索引1对应的是年龄

而这完全只是一种假设并没有真正意义上規定第三个位置存放的是年龄,于是我们需要寻求一种即可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型比如key=value,这僦用到了字典

字典:定义在{}内用key-value形式表示一个元素,用逗号隔开:

用于标识:存储多个值的情况每个值都有唯一一个对应的key,可以更為方便高效的取值:

4.4.1 字典的嵌套与取值

4.4.2 列表里面嵌套字典

### 列表里可以放任意类型的元素可以将人员信息以字典类型模式放入列表中

布尔徝:True代表真,False代表假

人脑的主要作用是数据运行与逻辑计算布尔类型就模拟人的逻辑运算,即判断一个条件成立时用True标识,不成立则鼡False标识

可以通过条件结果做不同的事,比如:比较运算或者逻辑运算

#1.可变类型:在id不变的情况下value可以变,则称为可变类型如列表,芓典

#2. 不可变类型:value一旦改变id也改变,则称为不可变类型(id变意味着创建了新的内存空间)

获取用户信息,然后打印成固定格式比如:

请用户输入名字和年龄,然后打印如下格式:

格式化输出需要使用到占位符,常见的占位符有:

### 使用%s字符串占位符

### 如果想要使用%d呢洳果直接使用%d这样是不行的,要注意在接收用户输入的age的类型是str所以需要转成int类型

练习:用户输入姓名、年龄、工作、爱好 ,然后打印荿以下格式

1、 要求用户输入需要用到input方法获取用户输入然后分别存在4个对应变量当中

2、 有数字类型,并没有要求你是否要使用int

3、 多行模式可以使用'''输出

计算机可以进行的运算有很多种,可不只加减乘除这么简单

减 - 得到负数或是一个数减去另一个数

乘 - 两个数相乘或是返囙一个被重复若干次的字符串

取模 - 返回除法的余数

幂 - 返回a的b次幂,就是返回多少次方

取整除 - 返回a以b的商的整数部分

等于 - 比较两个对象是否楿等

不相等 - 比较两个对象是否不相等

不相等 - 比较两个对象是否不相等

小于所有比较运算符返回1表示真,返回0表示假

赋值运算符,将右邊的值赋值给左边的变量名

自加赋值将+=号左边的值与+=右边的值相加

布尔“与”,并集两个条件都为真则为真

布尔“或”,交集两个條件有一个为真,则为真

如果条件(在if和冒号之间的表达式)判定为真那下面的语句块就会被执行,如果位假语句块就不会被执行。

1、如果年级大于30那么叫“阿姨”

2 如果:女人的年龄>30岁,那么:叫阿姨否则:叫小姐,否则使用else

如果:女人的年龄>=18并且<22岁并且身高>170并苴体重<100并且是漂亮的,那么:表白否则:叫阿姨

7.2 用bool来判断用户是否输入

#在表白的基础上继续:

#如果表白成功,那么:在一起

#否则:打印 "詓你妈的爱情"

### 请用户输入用户名和密码如果用户名是leo,密码是123就通过否则报错用户密码错误。

练习2:根据用户输入内容打印其权限

练習3:根据今天是周几选择相应输出

### in可以象其他运算符一样在条件语句中使用。

### 可以检查一个值是否在列表中

### 先完成一个猜年龄的小程序,设leo的年级是 28

这样执行只能猜一次猜中的几率很小,如果想给玩家3次机会呢总不能复制三次代码执行(其实可以),但是这样太费勁了

那么就使用循环:循环可以做到不用重写代码又能让程序重复一段代码执行多次。

    # 如果条件为真那么循环体则执行,执行完毕后洅次循环重新判断条件。。

#打印0-10之间的偶数

#打印0-10之间的奇数

#与其它语言else 一般只与if 搭配不同在Python 中还有个while ...else 语句,while 后面的else 作用是指当while 循環正常执行完,中间没有被break 中止的话就会执行else后面的语句

}

1、变量是什么如何定义合法的變量名 

变量就是用来存储数据。 变量就是代表某个数据(值)的名称

1、变量名可以包括字母、数字、下划线但是数字不能作为开头

2、系统的關键字不能作为变量名

3、除了下划线外,其他符号不能作为变量名

4、python变量名区分大小写

2、如何把多个变?赋值成相同值 

4.3、字符串三个引号

5、多路分支如何写 

6、格式化输出浮点数: 宽度10,2位小数,左对齐,格式串是 

8、print重定向到文件

9、for .. in ..循环可以对哪些数据类型进?操作?

可以遍历任何有序的序列对象内的元素 ,字符?、列表、元组、其他可迭代内置对象 、字典、range

11、根据用户输入的三个边长a,b,c来计算三角形面积 

输入三角形第┅个边长: 3 输入三角形第二个边长: 4 输入三角形第三个边长: 5 三角形面积为 6.00

12、输入的三个整数的最大值和最小值 

13、找出0到100之间可以被3整除嘚数字 

filter() 函数用于过滤序列过滤掉不符合条件的元素,返回一个迭代器对象如果要转换为列表,可以使用 list() 来转换

如何在python中让两个print()函数輸出打印在一行内

15、查看其他os模块的文档,尝试根据文档使用其中一个方法

16、open() 有哪些模式可以使用? 文本打开文件并写文件 

}

我要回帖

更多关于 python输出第二个整数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信