文档章节

Python核心编程-第十一章-习题

好好先生_1028
 好好先生_1028
发布于 2016/05/02 12:35
字数 781
阅读 96
收藏 1

1.

# -*- coding:utf-8 -*-

def countToFour1():
    for eachNum in range(5):
        print eachNum,
        
def countToFour2(n):
    for eachNum in range(n, 5):
        print eachNum,
        
def countToFour3(n=1):
    for eachNum in range(n, 5):m 
        print eachNum,
        
def tests(f):
    for argu in [2, 4, 5, 'nothing']:
        print u'%s(%s) 输出:' % (f.__name__, argu),
        if argu == 'nothing':
            try:
                f()
                print '\n'
            except TypeError, e:
                print 'ERROR: ', e
                print '\n'
                
        else:
            try:
                f(argu)
                print '\n'
            except TypeError, e:
                print 'ERROR: ', e
                print '\n'
                
tests(countToFour1)
tests(countToFour2)
tests(countToFour3)

2.

# -*- coding:utf-8 -*-

def add_product(*numpairs):
    result = {}
    for eachpair in numpairs:
        num1 = eachpair[0]
        num2 = eachpair[1]
        addresult = '%d + %d' % (num1, num2)
        proresult = '%d * %d' % (num1, num2)
        result[addresult] = num1 + num2
        result[proresult] = num1 * num2
    return result

3.

# -*- coding:utf-8 -*-

def max2(a, b):
    return a if a > b else b 

def min2(a, b):
    return a if a < b else a
    
def my_max(*argus):
    if len(argus) == 0:
        return u"错误!必须对非空集合取最小值!"
    else:
        maxvalue = argus[0]
        for eachvalue in argus:
            if eachvalue > maxvalue:
                maxvalue = eachvalue
        return maxvalue
   
def my_min(*argus):
    if len(argus) == 0:
        return u"错误!必须对非空集合取最小值!"
    else:
        minvalue = argus[0]
        for eachvalue in argus:
            if eachvalue < minvalue:
                minvalue = eachvalue
        return minvalue

4-5  略

6.

7.

def my_zip(*argus):
    return map(None,argus[0], argus[1])

8.

# -*- coding:utf-8 -*-

def year_judge(year):
    
    if (int(year) % 4 == 0 and int(year) % 100 != 0) or int(year) % 400 == 0:
        return True
    else:
        return False

def leap_list(yearlist):
    return filter(year_judge, yearlist)
    
someyears = range(1999, 2201)
leapyears = [year for year in someyears if year%4==0 and year%100!=0 or year%400==0]
print leapyears
print leap_list(someyears)

9.

def average(nums):
    print reduce(lambda x, y: x+y, nums)/float(len(nums))

10.  '.'的意思还是不太理解,搁置

11.

# -*- coding:utf-8 -*-
import os
def file_strip(filename):
    fobj = open(filename, 'r')
    content = fobj.readlines()
    fobj.close()
    #newcontent = map(lambda string: string.strip(), content)    map()实现
    newcontent = [string.strip() for string in content]    # 列表解析
    yourchoice = int(raw_input(u'覆盖原文件还是创建新文件?覆盖原文件请输入1,创建新文件输入2:'.encode('gbk')))
    if yourchoice == 1:
        fobj = open(filename, 'w')
    else:
        file_name = os.path.splitext(filename)
        fobj = open(''.join((file_name[0]+'1',file_name[1])),'w')
    
    fobj.writelines(map(lambda string: string+'\n',newcontent))
    #fobj.writelines(['%s\n' %eachline for eachline in newcontent])
    fobj.close()

12.

import time

def timeit(func, *nkwargs, **kwargs):
    t0 = time.clock()
    funcreturn = func(*nkwargs, **kwargs)
    result = (time.clock()-t0, funcreturn)
    return result

13.

    a.

def mult(x, y):
    return x * y

    b.

def mult(x, y):
    return x * y
    
def factorial(n):
    if n <= 1:
        return 1
    else:
        return reduce(mult, range(1, n+1))

    c.

def factorial(n):
    if n <= 1:
        return 1
    else:
        return reduce(lambda x, y: x*y, range(1, n+1))

    d.

import test_11_12
def factorial_reduce(n):
    if n <= 1:
        return 1
    else:
        return reduce(lambda x, y: x*y, range(1, n+1))

def factorial_recursion(n):
    if n <= 1:
        return 1
    else:
        return n * factorial_recursion(n-1)
        
def factorial_iteration(n):
    if n <= 1:
        return 1
    else:
        result = 1
        for num in range(1, n+1):
            result = result * num
        return result
        
def test(n):
    funcs = (factorial_reduce, factorial_recursion, factorial_iteration)
    for eachfun in funcs:
        retval = test_11_12.timeit(eachfun, n)
        print '%s time is %s.' % (eachfun.__name__, retval[0])

14.

def Fibonacci(n):
    if n <= 1:
        return n
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)

16.

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from __future__ import division
from operator import add, sub, mul
from random import randint, choice

def div(x, y):
    return x / y
 
ops = {'+': add, '-': sub, '*': mul, '/': div}
MAXTRIES = 2
 
def doprob():
    op = choice('+-/*')
    nums = [randint(1, 100) for i in range(2)]
    nums.sort(reverse=True)
    ans = ops[op](*nums)
    pr = '%d %s %d=' %(nums[0], op, nums[1])
    oops = 0
    while True:
        try:
            if int(raw_input(pr)) == ans:
                print u'解对了'
                break
            if oops == MAXTRIES:
                print u'应该是:\n%s%d' % (pr, ans)
                break
            else:
                print u'解错了。。。再拭一次'
                oops += 1
        except (KeyboardInterrupt, EOFError, ValueError):
            print u'无效输入。。。再试一次'
             
 
def main():
    while True:
        doprob()
        try:
            opt = raw_input(u'继续? [Y]'.encode('gbk')).lower()
            if opt and opt[0] == 'n':
                break
        except (KeyboardInterrupt, EOFError):
            break
             
if __name__ == '__main__':
    main()

© 著作权归作者所有

好好先生_1028
粉丝 25
博文 79
码字总数 78986
作品 0
温州
私信 提问
新手入门,学习《python核心编程》需要注意哪些,怎么提高效率

@fzyz_sb 你好,想跟你请教个问题: 你好,我这几天一直在学习《python核心编程》,在网上搜习题答案时找到的你的博客,所以这些天也一直是看着你的博客学习的。我计算机编程只是在学校开的c...

_keyboard_dancer_
2015/04/05
3K
3
《趣学Python编程》习题总结

上周买了本书叫《趣学Python编程》(英文名:Python for kids),昨天看完后把书后面的题都做了下。由于第1、2章没有习题,第13章及之后都是描写实例的章节,因此这个总结性的文章中只包含了...

北风其凉
2014/12/01
10.4K
0
python核心编程6-14习题的解题思路修改版

python核心编程6-14习题的解题思路修改版 #coding:utf-8 """ python核心编程6-14习题的解题思路 设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则.你和你的对手......

黄哥Python培训
2014/02/10
150
1
剪刀石头布小习题三种语言python2、php、go代码

剪刀石头布小习题三种语言python2、php、go代码 # coding:utf-8 """ python核心编程6-14习题的解题思路 设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则. 你和......

黄哥Python培训
2015/02/10
957
0
团队拙作《Python机器学习实战》

之前看国内外的 Python 机器学习的书,鲜有将机器学习到底怎么做人脸识别、怎么做风险控制、怎么做 OCR 算法模型列出的,并且真正的一个 Python 应用,不止是从机器学习库中导入一下配置一下...

yijun2018
2018/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
昨天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
昨天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部