python常见笔试题整理
1、统计在一个队列中的数字,有多少个正数,多少个负数
a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]\# 用列表生成式,生新的列表
b = [i for i in a if i > 0]
print("大于0的个数:%s" % len(b))
c = [i for i in a if i < 0]
print("小于0的个数:%s" % len(c))
2、字符串切片
字符串 "axbyczdj",如果得到结果“abcd”
\# 字符串切片
a = "axbyczdj"
print(a[::2])
3、字符串切割
已知一个字符串为“hello_world_yoyo”, 如何得到一个队列 ["hello","world","yoyo"]a = "hello_world_yoyo"
b = a.split("_")
print(b)
4、格式化输出
已知一个数字为1,如何输出“0001”a = 1
print("%04d" % a)
5、队列
已知一个队列,如: [1, 3, 5, 7], 如何把第一个数字,放到第三个位置,得到:[3, 5, 1, 7]
a = [1, 3, 5, 7]# insert插入数据
a.insert(3, a[0])
print(a[1:])
5、交换
已知 a = 9, b = 8,如何交换a和b的值,得到a的值为8,b的值为9a = 8
b = 9
a, b = b, a
print(a)
print(b)
6、水仙花数
打印出100-999所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
***\*程序分析:\****利用for循环控制100-999个数,每个数分解出个位,十位,百位。
for n in range(100,1000): i = n / 100 j = n / 10 % 10 k = n % 10 if n == i ** 3 + j ** 3 + k ** 3:
print (n)
7、完全数
如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。
例如:第一个完全数是 6,它有约数 1、2、3、6,除去它本身 6 外,其余 3 个数相加,1+2+3=6。
第二个完全数是 28,它有约数 1、2、4、7、14、28,除去它本身 28 外,其余 5 个数相加,1+2+4+7+14=28。def perfectFunc():perfect = []for i in range(1, 1000):s = 0for j in range(1, i):if i % j == 0 and i > j:s += jif s == i:perfect.append(i)print('1~1000之内的完全数:',perfect)
perfectFunc()
8、冒泡排序
1. 将列表中的第一个数与第二个数进行比较
2. 如果比第二个数小,就将他俩交换位置
3. 在使用第二个数和第三个数进行比较
4. 依次那这个数和后面的进行比较
5. 最后一个数就是最大的数
外层循环控制循环次数 内层循环控制数据比较
def bubbleSort(arr): n = len(arr) # 遍历所有数组元素 for i in range(n):for j in range(0, n-i-1): if arr[j] > arr[j+1] : arr[j], arr[j+1] = arr[j+1], arr[j]
arr = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i]),
9、sort排序
问题1:已知一个队列[1, 3, 6, 9, 7, 3, 4, 6]
- 按从小到大排序
- 按从大大小排序
- 去除重复数字
a = [1, 3, 6, 9, 7, 3, 4, 6]
# 1.sort排序,正序
a.sort()
print(a)
# 2.sort倒叙
a.sort(reverse=True)
print(a)
# 3.去重
b = list(set(a))
print(b)
10、斐波那契数列
问题1:已知一个数列:1、1、2、3、5、8、13、。。。。的规律为从3开始的每一项都等于其前两项的和,这是斐波那契数列。求满足规律的100以内的所以数据
a = 0
b = 1
while b < 100:print(b, end=",")a, b = b, a+b
11、幂的递归
计算x的n次方,如:3的4次方 为333*3=81
def mi(x, n):'''计算x 的n 次方'''if n == 0:return 1else:return x*mi(x, n-1)
x = 3
num = 4
print(mi(x, num))
12、判断用户输入的年份是否为闰年
# 1.输入一个年份,判断是否为闰年。
# 条件1:不能被100整除且能被4整除
# 条件2:能被100整除且能被400整除year=int(input("请输入年份"))
if (year%100!=0 and year%4==0) or (year%100==0):print("是闰年")
else:print("不是闰年")
13、i = i+1 和 i += 1
- 对于不可变数据类型(str、int、tuple)
由于本身是不可变数据类型,执行后都会生产新的对象
x = 1
print(id(x)) # 1510566928
x += 1
print(id(x)) # 1510566960
---------------------------
x = 1
print(id(x)) # 1510566954
x = x + 1
print(id(x)) # # 1510566998
14、Python里面如何实现tuple和list的转换
答:直接使用tuple和list函数就行了,type()可以判断对象的类型
15、Python中pass语句的作用是什么?
答:pass语句不会执行任何操作,一般作为占位符或者创建占位程序
16、请写出一段Python代码实现删除一个list里面的重复元素
答:使用set函数,set(list)
17、Python数据的可变与不可变类型
可变类型是 数据发生改变 内存空间地址不变
不可变类型是 数据发生改变 内存空间地址也发生改变
数据类型 可变/不可变
整型 不可变
字符串 不可变
元组 不可变
列表 可变
集合 可变
字典 可变
18、@staticmethod和@classmethod的区别?
一个静态方法,一个类方法
一个静态方法:(无论是对象还是类,都可以调用,不会默认传递任何参数)
一个类方法 :(无论是对象还是类,都可以调用,会默认传递类这个参数)
19、如何生成一个随机数?
import random
random.random 随机获取 0<= x < 1
random.randrange 随机获取指定范围中的整数,用法上同range
random.uniform 随机获取指定范围中的小数
20、Python实现9 9乘法表
i = 0
for i in range(0,9):i += 1for j in range(i,10):print("%d*%d=%2d" % (i, j, i * j), end=" ")print("")
21、二分查找
二分查找原理:把目标数和序列中间的数进行比较,如果相等就结束,如果小,就在中间数左边的子序列中查找,如果大就在中间数右边子序列中查找,如果某一个步骤数组为空就是不存在,递归的去查找。
def binarySearch(arr,l,r,x):if r>=l:mid = int(l + (r-l)/2)if arr[mid] > x:return binarySearch(arr,l,mid-1,x)elif arr[mid] == x:return midelse:return binarySearch(arr,mid+1,r,x)else:return '此数不存在'if __name__ == '__main__':arr = [1,4,5,7,9,10]x = 6result = binarySearch(arr,0,len(arr)-1,x)print(f'查找结果为{result}')
22、快速排序
快速排序原理:首先从数组中选取一个基准值(可任意选择),然后把大于基准值的放在右边,小于基准值放在左边,递归对两边的子序列重复上述操作。最后把两边的序列和基准值拼接返回。
def query(arr):if len(arr)<2:return arr# step1:选取基准值base_value = arr[len(arr)//2]# step2:把数组中的每个元素对其比较left_arr = []right_arr = []arr.remove(base_value)for i in range(len(arr)):if arr[i]>=base_value:right_arr.append(arr[i])else:left_arr.append(arr[i])return query(left_arr) + [base_value] + query(right_arr)arr = [1,2,23,4,6,7]
print(query(arr))
23、插入排序
def charu(arr):for i in range(1,len(arr)):key = arr[i]j = i - 1while j>=0 and key<arr[j]:arr[j+1] = arr[j]j -= 1arr[j+1] = key
arr = [3,5,4,2]
charu(arr)
print(arr)
24、选择排序
选择排序原理:找出元素中的最大或最小元素,放在有序队列中,然后再找出未排序元素中的最大或最小元素,插入到有序序列的末尾。
def choiceSort(arr,new=[]):min_value = min(arr)new.append(min_value)arr.remove(min_value)if len(arr) != 0:choiceSort(arr)return newarr = [3,5,23,6,8]
res = choiceSort(arr)
print(res)
python常见笔试题整理相关推荐
- 110 道 Python 面试笔试题超强汇总
本 Chat 为免费基础入门篇,获取更多面试知识点请大家参阅我的另一个 Chat :致金三银四辛勤找工作的你们:Python 面试必备. 本 Chat 你将会获得以下知识: 110 道 Python ...
- 软件测试常见笔试题总结
http://t.csdn.cn/2fKts 软件测试常见笔试题总结 01 mysql 1.1 数据库操作 1.2 表结构操作 1.2.1 创建表 1.2.2删除表 1. 删除单张表: 2. 删除多个 ...
- android笔试题整理
笔试题整理 今天接到消息,说下个星期三.会陆陆续续的有公司来学校找暑假实习生.还没准备好啊,这就来啦?麻蛋 我慌的要死啊~ 1.Math.round(11.5)等于多少(). Math.round(- ...
- 大厂常见笔试题 滑动窗口内数的和
大厂常见笔试题,我以为出一个很难的题,结果出了一个基础题, 给你一个大小为n的整型数组和一个大小为k的滑动窗口,将滑动窗口从头移到尾,输出从开始到结束每一个时刻滑动窗口内的数的和. 样例 对于数组 [ ...
- java字符串笔试题_五道Java常见笔试题及答案汇总
1.String和StringBuffer的区别? 答:Java平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据.这个String类提供了数 ...
- mysql @ $_mysql常见笔试题
一.Mysql常见笔试题 1.Mysql 中有哪几种锁? (1)表级锁:开销小,加锁快.不会出现死锁,锁定粒度大,发生锁冲突的概率高,并发度低. (2)行级锁:开销大,加锁慢.会出现死锁,锁定粒度小, ...
- 嵌入式linux工程师 考试,嵌入式Linux工程师常见笔试题.doc
嵌入式Linux工程师常见笔试题.doc 这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的. 从 ...
- C语言一般考点笔试,c语言常见笔试题及答案
c语言常见笔试题及答案 c语言常见笔试题总结c语言笔试题(九) 2006-09-06 Tag: C语言 1. #include "stdio.h" int main() {int ...
- 【Mysql笔试】-常见笔试题汇总
Mysql常见笔试题汇总 基础知识 排序的规则? 函数的分类?经常使用的函数? 分组查询注意条件? limit使用方法? 创建表时有什么约束条件? mysql常见数据类型? 增加删除修改表结构 常见约 ...
最新文章
- 乐观准则和最小后悔值怎么算_婚姻危机:结婚后想离婚,你该怎么办?
- php获取头像,WordPress中用于获取及自定义头像图片的PHP脚本详解
- jenkins 邮件配置 二 ***
- 语义分割中的深度学习方法全解:从FCN、SegNet到各版本DeepLab
- 【转】最流行的编程语言JavaScript能做什么?
- NetCore2.x 使用Log4Net(一)
- ELF Format 笔记(七)—— 符号表
- 在浏览器里使用SAPGUI里的SE80
- 人类视觉系统_对人类视觉系统的对抗攻击
- 不同vlan之间如何ping通_【丰润达.安防百科】如何实现交换机不同VLAN、不同网段之间互访?...
- android放微信@功能,Android仿微信语音消息的录制和播放功能
- .NET Framework-多线程网络编程
- arduino学习笔记(一)——bamboosir920
- matlab2014a安装密钥
- Oracle书籍推荐
- x64 盗版PCHunter
- Legacy(传统)BIOS的历史和不足
- CentOS7 和 Ubuntu16 安装、配置并挂载 NFS
- SAP中利用SE16N事务的小计功能实现输出清单的加工实例
- 【重磅推荐】基于truffle-contract库实现的以太坊solidity合约调用案例(注:web3.js切勿和truffle-contract库同时使用,否则报错,无法修复!)