前言
现在面试测试岗位,一般会要求熟悉一门语言(python/java),为了考验求职者的基本功,一般会出 2 个笔试题,这些题目一般不难,主要考察基本功。要是给你一台电脑,在编辑器里面边写边调试,没多大难度。主要是给你一张纸和笔,让你现场写出来,那就没那么容易了。(本篇代码都是基于3.6)

1.统计
统计在一个队列中的数字,有多少个正数,多少个负数,如[1, 3, 5, 7, 0, -1, -9, -4, -5, 8]

方法一

 # coding:utf-8

 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))

方法二

 # coding:utf-8
a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
# 用传统的判断思维,累加
m = 0
n = 0
for i in a:
  if i > 0:
    m += 1
  elif i < 0:
    n += 1
  else:
    pass
print("大于 0 的个数:%s" % m)
print("小于 0 的个数:%s" % n)

2.字符串切片
字符串 "axbyczdj",如果得到结果“abc

方法一

 # 字符串

 a = "axbyczdj"

 print(a[::2])

方法二

 # 传统思维
a = "axbyczdj"
c = []
for i in range(len(a)):
  if i % 2 == 0:
    c.append(a[i])
print("".join(c))

3.字符串切割

已知一个字符串为“hell_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:])

6.交换

已知 a = 9, b = 8,如何交换 a 和 b 的值,得到 a 的值为 8,b 的值为 9

方法 1

 a = 8
b = 9
a, b = b, a
print(a)
print(b)

方法 2

 a = 8
b = 9
# 用中间变量 c
c = a
a = b
b = c
print(a)
print(b)

 7.水仙花

打印出 100-999 所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个"水仙花数",因为 153=1 的三次方+5 的三次方+3 的三次方。

 sxh = []
for i in range(100, 1000)
  s = 0
  m = list(str(i))
  for j in m:
    s += int(j)**len(m)
  if i == s:
print(i) sxh.append(i)print("100-999 的水仙花数:%s" % sxh)

8.完全数

如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。 例如:第一个完全数是 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。那么问题来了,求 1000 以内的完全数有哪些?

 m=[]
for a in range(1,1000):
s = 0
for b in range(1,a):
if a%b==0:
if a!=b: #这里也可以写成if i % j == 0 and j < :s+=b
s+=b
if a==s:
m.append(a)
print("1000以内的完全数有:%s" % m)

9.排序:

 用 python 写个冒泡排序
a = [1, 3, 10, 9, 21, 35, 4, 6]
s = range(1, len(a))[::-1]
print(list(s)) # 交换次数 for i in s:
for j in range(i):
if a[j] > a[j + 1]:
a[j], a[j + 1] = a[j + 1], a[j]
print("第 %s 轮交换后数据:%s" % (len(s)-i+1, a))
print(a)

运行结果:

10.sort 排序

已知一个队列[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)

运行结果截图:

python 笔试题(递归)-2

前言本篇继续收集一些常见的 python 笔试题,以基础知识为主,递归是面试最喜考的一个问题,不管是做开发还是测试,都无法避免考递归。本篇结合实际案例,讲下几种关于递归的场景。

计算n 的阶乘

拓展知识点:

斐波那契数列 

幂的递归

return 1 理解如下:

汉诺塔问题

re.findall()用法解析:

【Python】【面试必看】Python笔试题的更多相关文章

  1. 小白必看Python视频基础教程

    Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.Python的火热,也带动了工程师们的就业热.可能你也想通过学习加入这个炙手可热的行业,可以看看Python视频基础教程,小 ...

  2. 【Python】:用python做下百度2014笔试题

    国庆节最后一天,明天就要上班了,闲来无事做做百度2014笔试题,好久没用过C++了,索性就用python简单的写一下,体验下题目难度.题目是从[大卫David]那里copy过来的. 1.给定任意一个正 ...

  3. 《Python 二三事》——python学习必看(转载)

        面向初学者介绍Python相关的一些工具,以及可能遇到的常见问题. 原文出处 原文作者:八八年出生的男性,互联网上常用id是 jagttt .目前正从事 IT 行业的工作.业余爱好是动漫游加电 ...

  4. Python初学者必看(1)

    python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  5. python初学者必看学习路线图!!!

    python应该是近几年比较火的语言之一,很多人刚学python不知道该如何学习,尤其是没有编程基础想要从事程序员工作的小白,想必应该都会有此疑惑,包括我刚学python的时候也是通过从网上查找相关资 ...

  6. 面试必看!靠着这份字节和腾讯的面经,我成功拿下了offer!

    准备 敲定了方向和目标后就开始系统准备,主要分为以下几个方面来准备. 算法题 事先已经看过别人的社招面经知道头条每轮技术面都有算法题,而这一块平时练习的比较少,校招时刷的题也忘记了很多.因此系统复习的 ...

  7. python面试必问 知识整理

      一 数据类型 1 数字 整型与浮点型   #整型int 作用:年纪,等级,身份证号,qq号等整型数字相关 定义: age=10 #本质age=int(10) #浮点型float 作用:薪资,身高, ...

  8. Python | 面试必问,线程与进程的区别,Python中如何创建多线程?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题第20篇文章,我们来聊聊Python当中的多线程. 其实关于元类还有很多种用法,比如说如何在元类当中设置参数啦,以及一 ...

  9. python初学者必看的学习路线

    Python是近几年比较火的编程语言之一,因为人工智能的火爆,让很多人都想从事python开发.很多零基础学员在学习python的时候都会走一些弯路,下面小编就为大家分享python学习路线图,帮助零 ...

随机推荐

  1. 稍稍解读下JDK8的HashMap

    首先,源码中上来就有一大段注释,但最重要的就是第一句. 大意如下: 本map经常用作一个 binned (bucketed) hash table (下面有解释),但是,当bins很大的时候,它们会被 ...

  2. LeetCode_1. Two Sum_Solution

    原题链接 原题中文链接 一.题目描述 二.题目分析 1,常规解法 这道题目的意思是给定一个数组和一个值,要求出这个数组中两个值的和等于这个给定值target. 输出是有要求的: 坐标较小的放在前面,较 ...

  3. 文件加密 解密 pdftk openssl gpg vim

    openssl加密和解密 . openssl des -salt -in file -out file.des openssl des -d -salt -in file.des -out file ...

  4. react-router 4.3 js实现跳转

    import React, {Component} from 'react'; import { NavLink,Link } from "react-router-dom"; i ...

  5. 通信原理之IP协议,ARP协议 (三)

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  6. iOS开发之--宏定义与const的区别及使用方法

    宏定义的常见用法: 定义一段代码,或指定字符串抽成宏. const(常量): 当有字符串常量的时候,苹果推荐我们使用const,苹果经常把常用的字符串定义成const 宏定义与const的区别: 编译 ...

  7. 【代码审计】大米CMS_V5.5.3 任意文件读取漏洞分析

      0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...

  8. C++/MFC-线程优先级

    转载: https://blog.csdn.net/qwdpoiguw/article/details/72830426 一.线程优先级(Thread priority ) 简单的说就是(线程)的优先 ...

  9. OpenGL——折线图柱状图饼图绘制

    折线图绘制代码: #include<iostream> //旧版本 固定管线 #include<Windows.h> #include <GL/glut.h> // ...

  10. python3之枚举

    枚举 li = ['a','b','c','d'] for index,i in enumerate(li): #for index,i in enumerate(li,100): print(ind ...