博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习:Python练习
阅读量:4325 次
发布时间:2019-06-06

本文共 2943 字,大约阅读时间需要 9 分钟。

从渠道内获得了一批python面试题,作为python学习的新手,拿来学习一下。顺便如果可能希望看到大家的更好的方法。

题目:

1、你想计算所有素数的一个无界的序列,或者小于某个阈值的所有素数的列表(可分别实现)。

ps:素数又称为质数,指在大于1和此数自身外,不能被其他任何自然数整除的数。

解答代码如下:

import mathdef pd(n):    ‘’‘个人比较搓,命名方式不太妥当,各位请勿见笑,    cs为除数,wq即无穷'''    for cs in xrange(2,int(math.sqrt(n)+1)):        if n % cs == 0:            return False    return Truedef out(length="wq"):    if length == 'wq':        input_num = 3        while True:            if pd(input_num):                print input_num,            input_num += 1    else:        try:            length = int(length)        except ValueError,e:            print "you will input a num"        for key in xrange(2,length+1):            if pd(key):                print key,out(100)

 

2:需要一个函数,它能执行一条shell命令,并实时显示命令的输出,如果能需要从web页面执行这条shell命令,设计一个方案,让web页面能够实时的得到命令的输出。

解答:个人比较撮,不会写页面,这里埋个坑,以后会写了补上,各位看官,如果会搞或者思路希望不吝赐教。只写了实时获取命令的输出

import subprocess#本人采用了进程间通讯的方法进行输出采集shell = raw_input("please input a shell:\t")#采集用户输入的shellshell_list = []for i in shell.split():    shell_list.append(i)popen = subprocess.Popen(shell_list,stdout=subprocess.PIPE)while True:    line = popen.stdout.readline()    if line:        print line,    else:        break

 3:有一个日志文件,内容片段如下,编写一个函数,统计该文件FNF,FNH,BRF,BRH,LF,LH六个字段各自的和。

...

FNF:1

FNH:1

BRDA:11,0,0,0

BRDA:11,0,1,1

BRF:4

BRDA:8,2,1,1

BRH:3

LF:26

LH:23

...

注:需要统计的字段冒号后只会出现一个整数。

 

解答思路:我的思路是用re库过先过滤包含了","的行,然后依照“:”对数列进行切割,然后将其追加到字典内。

import re#打开文件fo = open(filename)regex = re.compile(r"(FNF)|(FNH)|(BRF)|(BRH)|(LF)|(LH)")result = {}while True:    '''如果该行不含有,号,则进一步判断是否符合预期内的内容,如果符合,则追加到字典中去'''    line =fo.readline()    if not line:        #读到最后一行跳出        break    else:        if not re.search(r",",line):            line_split = line.split(":")            if regex.search(line_split[0]):                result[line_split[0]] = result.get(line_split[0],0) + line_split[1]#输出最终结果for k in result:    print k,result[k]

 4:需要一个函数,他能生成fibonacci数列的整个序列(无限个);使用这个函数取出fobonacci数列的前10项。注:fibonacci数列是这样的一个数列:1、1、2、3、5、8、13、21、34

#!/bin/env python# -*- encoding:utf-8 -*-fibonacci = [1,1]def produce_fibonacci(x):    global fibonacci    try:        x = int(x)    except ValueError,e:        print "you will input a num"        exit()    if not x >= 3:        print "you should input a num large then 3"    else:        for i in xrange(2,x):            key = fibonacci[i-2] + fibonacci[i-1]            fibonacci.append(key)    print fibonacciif __name__ == "__main__":    x = raw_input("input a num you want fibonacci:\t")    produce_fibonacci(x)

5: 题目:展开一个嵌套的原始序列,序列中的子项可能是序列,子序列的子项仍然可能是序列。

例如:[1,2,[3,[],4,[5,6],7,[8,]],9]

#!/usr/bin/env python'''输出序列的展开'''result = []def zk_xl(x):    if type(x) is list:        for k in x:            if type(k) is list:                zk_xl(k)            else:                result.append(k)zk_xl([1,[2,],3,[4,5],6,7])print result

 

 

就是这些了,有些题目设计django架构的东西,由于自己现在还没接触过,也没办法测试。就丢上来献丑了。

转载于:https://www.cnblogs.com/sageskr/archive/2013/04/23/3038899.html

你可能感兴趣的文章
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
64位MATLAB和C混合编程以及联合调试
查看>>
原生js大总结二
查看>>
PHP基础
查看>>
UVa 11488 超级前缀集合(Trie的应用)
查看>>
Django 翻译与 LANGUAGE_CODE
查看>>
[转]iOS教程:SQLite的创建数据库,表,插入查看数据
查看>>
【转载】OmniGraffle (一)从工具栏开始
查看>>
初识ionic
查看>>
java 中打印调用栈
查看>>
开发 笔记
查看>>
数据挖掘算法比赛 - 简单经验总结
查看>>
生成商户订单号/退款单号
查看>>
使用Android OpenGL ES 2.0绘图之六:响应触摸事件
查看>>
我们过去几年做对了哪些事
查看>>
ubuntu 16.04LTS
查看>>
javascript深入理解js闭包
查看>>
Java Bigdecimal使用
查看>>