Python基础题
1、冒泡排序
def mao_pao(li):
for i in range(len(li)):
for j in range(len(li)):
if li[i] < li[j]:
li[i],li[j] = li[j] ,li[i]
import random
li = list(range(10))
random.shuffle(li)
print(li)
mao_pao(li)
print(li) 
2、删除列表中的重复元素
方式一
li = [1,5,5,4,12,3,1,5]
print(list(set(l))) 方式二
li = [1,5,5,4,12,3,1,5]
def func(li):
l = []
for i in li:
if i not in l:
l.append(i)
return l
print(func(li)) 
3、二分查找
方式一:递归版
li = [1,2,3,4,5,6,7,8,9,10]
def erfen(li,aim ,start=0 ,end=len(li)-1):
if start <= end:
mid = (start+end)//2
if li[mid] >aim : #如果中间的值比目标值大,就从左边找
return erfen(li,aim,start,mid-1)
elif li[mid]<aim : #从右边找
return erfen(li,aim,mid+1,end)
else:
return mid
ret = erfen(li,10)
print(ret) 方式二:循环版
li = [1,2,3,4,5,6,7,8,9,10]
def erfen(li,aim,start=0,end=len(li)-1):
while start <= end:
mid = (start+end) //2
if li[mid] < aim:
start = li[mid] +1
elif li[mid] >aim:
end = li[mid] -1
else:
return mid print(erfen(li,10)) 
4、写出下面代码的输出结果
def f(x,l=[]):
for i in range(x):
l.append(i*i)
print(l)
f(2) #[0,1]
f(3,[3,2,1]) #[3,2,1,0 1 4]
f(3) #[0,1,0,1,4]
5、实现字符串反转 输入str="string"输出'gnirts'
# 方式一
def str_reverse(str):
return str[::-1] #从前到后步长为-1
print(str_reverse('string')) # 方式二
def str_reverse2(str):
l = list(str)
l.reverse()
new_str = ''.join(l)
return new_str
print(str_reverse2('string')) 
6、一行代码实现对列表a中的偶数位置的元素进行加3后求和
# 0 1 2 3 4
# 0 5 7
sums=sum(map(lambda x:x+3,list(range(5))[::2]))
print(sums) 
7、List=[-2,1,3,-6] ,如何实现以绝对值大小从小到大将list中内容排序
List=[-2,1,3,-6]
List.sort(key=abs) #按照绝对值从小到大排序
print(List) 
8、如果当前日期为20170130,要求写一个函数输出N天后的日期
import datetime
data = ''
def func(n,data): date=datetime.datetime.strptime(data,'%Y%m%d')
da=datetime.timedelta(n)
return date+da print(func(2,data)) 
9、实现一段代码,功能是将这段代码打印出来
import os
def print_code():
with open(os.path.join(os.getcwd(),__file__),'r',encoding='utf-8') as f:
return f.read()
print(print_code()) 
10、合并两个列表,并去重,组成一个新的列表
# 方式一
list1 = [1,2,3,5,8,4,2,6]
list2 = [11,44,21,2,54,77]
print(list(set(list1+list2))) #方式二
list1.extend(list2)
print(list(set(list1)))
#方式三
def list_union(list1,list2):
for i in list2:
list1.append(i)
return list1
print(list(set(list_union(list1,list2)))) 
11、什么是lambda表达式?他有什么好处?另外Python在函数编程方面提供了些什么函数和语法?
答:lambda 表达式也就是匿名函数,一些简单的功能需要实现的时候可以用匿名函数,一行语句体搞定。
它语法简单,简化代码,不会产生命名冲突,污染命名空间。
Python提供了map,filter,reduce等函数方法,提供了装饰器,闭包等语法 
12、详细说说tuple,list,dict的用法以及他们的特点
tuple:元组,不可变数据类型,访问效率高,适合存储一些常量数据,可以作为字典的键使用
list:列表,是可变数据类型,可以通过下标索引取值
dict:字典,是可变数据类型,存储方式为键值对的形式,可以通过相对应的键获取相对应的值。key支持多种数据类型
13、list 对象 alist [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}],按 alist 中元素的age 由大到小排序
alist = [{'name': 'a', 'age': 20}, {'name': 'b', 'age': 30}, {'name': 'c', 'age': 25}]
alist.sort(key=lambda x:x['age'],reverse=True)
print(alist) 
14、将字符串:"k:1|k1:2|k2:3|k3:4",处理成 python 字典:{'k':'1', 'k1':'2', 'k2':'3','k3':'4' }
s = "k:1|k1:2|k2:3|k3:4"
str_list = s.split('|')
print(str_list)
d = {}
for i in str_list:
key ,value = i.split(':')
d[key] = value
print(d) 
15、斐波那契数列
def fib(n):
if n<=2:
return 1
else:
return fib(n-1) + fib(n-2)
print(fib(10))

 

Python常见问题系列的更多相关文章

  1. (原创)Python字符串系列(1)——str对象

    在本博客 <Python字符串系列> 中,将介绍以下内容: Python内置的str对象及操作 字符串的格式化 Python中的正则表达式 re模块 本文将介绍Python内置的 str ...

  2. python基础系列教程——Python中的编码问题,中文乱码问题

    python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...

  3. python基础系列教程——Python3.x标准模块库目录

    python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata ...

  4. python基础系列教程——Python库的安装与卸载

    python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...

  5. python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda

    ---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...

  6. 人脸检测及识别python实现系列(2)——识别出人脸

    人脸检测及识别python实现系列(2)——识别出人脸 http://www.cnblogs.com/neo-T/p/6430583.html

  7. 人脸检测及识别python实现系列(6)——终篇:从实时视频流识别出“我”

    人脸检测及识别python实现系列(6)——终篇:从实时视频流识别出“我” 终于到了最后一步,激动时刻就要来临了,先平复一下心情,把剩下的代码加上,首先是为Model类增加一个预测函数: #识别人脸 ...

  8. 人脸检测及识别python实现系列(5)——利用keras库训练人脸识别模型

    人脸检测及识别python实现系列(5)——利用keras库训练人脸识别模型 经过前面稍显罗嗦的准备工作,现在,我们终于可以尝试训练我们自己的卷积神经网络模型了.CNN擅长图像处理,keras库的te ...

  9. 人脸检测及识别python实现系列(4)——卷积神经网络(CNN)入门

    人脸检测及识别python实现系列(4)——卷积神经网络(CNN)入门 上篇博文我们准备好了2000张训练数据,接下来的几节我们将详细讲述如何利用这些数据训练我们的识别模型.前面说过,原博文给出的训练 ...

随机推荐

  1. mysql中间件研究(Atlas,cobar,TDDL)[转载]

    mysql中间件研究(Atlas,cobar,TDDL) mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差. ...

  2. Struts2学习笔记三:深入Action

    一:Action中获取参数值 在Servlet中,我们通过doGet()/doPost()方法中的参数,获取request/response对象,然后提取参数值: 处理请求结束后,有数据需要携带返回客 ...

  3. C#/Asp.Net 获取各种Url的方法

    比如有:http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2 Response.Wri ...

  4. 〖Linux〗noip免费域名申请,及更新域名的API

    1. 登录 http://www.noip.com2. 选择 Hosts/Redirects -- Add A Host3. 填写 期望的域名即可(如下图) 4. 更新域名的API: wget -q ...

  5. java 封装02

    //Person.java public class Person{ private String name; private int age; private String sex; public ...

  6. Ubuntu16.04 安装使用KiCad

    KiCad是一个带模拟器的电路设计软件, 官网 http://kicad-pcb.org/, 当前版本是4.0.7 安装 参考http://kicad-pcb.org/download/ubuntu/ ...

  7. 1万字!彻底看懂微信小程序

    Q:为什么说小程序如炮友? A:小程序刚发布不久就流行一个段子:APP如原配,一年不用几次:服务号如情人,一个月固定几次:订阅号如酒店小卡片,天天可以卖广告:小程序像炮友,用完就走. 资本如嫖客,各个 ...

  8. Oracle用分区表分区交换做历史数据迁移

    一. 说明: OLTP库中有些表数据量大,且每月有持续的大量数据添加.因为历史数据在此库中不再做訪问,而是在另1个OLAP库中做分析.所以会对历史数据迁移至OLAP库中.对这样的历史数据迁移的操作.较 ...

  9. (原)tensorflow中finetune某些层

    转载请注明处处: http://www.cnblogs.com/darkknightzh/p/7608709.html 参考网址: https://kratzert.github.io/2017/02 ...

  10. JavaScript Window Screen 用户屏幕的信息

    window.screen 对象包含有关用户屏幕的信息. Window Screen window.screen 对象在编写时可以不使用 window 这个前缀. 一些属性: screen.avail ...