1.实现1-100的所有的和

#!/usr/bin/env python

#encoding:utf8

'''实现1-100的所有的和

1. 使用列表解析获取0-100的列表

2. 使用reduce内置函数和匿名函数计算列表的总和'''

number_list = [x for x in xrange(101)] #使用xrange和range都可以,不过xrange的性能要优于range

sum_list = reduce(lambda x, y:x+y,number_list )

print sum_list #结果为5050

2.实现1-500所有奇数的和

#!/usr/bin/env python

#encoding:utf8

'''实现1-500所有奇数的和

1. 同样使用列表解释获取1-500内的奇数

2. 使用reduce函数和匿名函数计算列表的总和'''

odd_list = [x for x in xrange(501) if x % 2 == 1]

odd_sum_list = reduce(lambda x,y:x+y,odd_list)

print odd_sum_list #结果为62500

3.求1+ 2! + 3! + 4! + ……20!的和

#!/usr/bin/env python

#encoding:utf8

'''

计算1+ 2! + 3! + 4! + ……20!的和

'''

def fac(n):

i = 1

fac_number = 1

while i <= n:

fac_number = fac_number*i

i += 1

return fac_number

def fac_sum(n):

sum = 0

while n:

sum += fac(n)

n -= 1

return sum

number = raw_input('plesae input the number:')

print "%s!+...+2!+1 的和为 %d" % (number,fac_sum(int(number)))

4.对指定一个list进行排序[2,32,43,453,54,6,576,5,7,6,8,78,7,89]

存在两种排序方式

sorted()

list.sort()

区别: sorted 和list.sort 都接受key, reverse定制。但是区别是。list.sort()是列表中的方法,只能用于列表。而sorted可以用于任何可迭代的对象。list.sort()是在原序列上进行修改,不会产生新的序列。所以如果你不需要旧的序列,可以选择list.sort()。 sorted() 会返回一个新的序列。旧的对象依然存在。

只要是可迭代对象都可以用sorted 。

sorted(itrearble, cmp=None, key=None, reverse=False)

=号后面是默认值 默认是升序排序的, 如果想让结果降序排列,用reverse=True

最后会将排序的结果放到一个新的列表中, 而不是对iterable本身进行修改。

sorted()函数的处理范围比list.sort()处理的范围更加广泛

'''方法一'''

list_to_sort = [2,32,43,453,54,6,576,5,7,6,8,78,7,89]

list_to_sort.sort() #sort不加参数默认为升序排序

print list_to_sort #结果为[2, 5, 6, 6, 7, 7, 8, 32, 43, 54, 78, 89, 453, 576]

'''方法二'''

list_to_sort = [2,32,43,453,54,6,576,5,7,6,8,78,7,89]

new_sort_list = sorted(list_to_sort)

print new_sort_list #结果为[2, 5, 6, 6, 7, 7, 8, 32, 43, 54, 78, 89, 453, 576]

5.把一个数字的list从小到大排序,然后写入文件,然后从文件中读取出来文件内容,然后反序,在追加到文件的下一行中

实现代码如下:虽然没有必要这样做,但是体现了“分解”的思想,代码重复使用性增强

#coding:utf8

import sys

'''

把一个数字的list从小到大排序,然后写入文件

然后从文件中读取出来文件内容,然后反序,在追加到文件的下一行中

'''

def sort_list(list_origi):

'''从小到大排序'''

sorted_list = sorted(list_origi)

return sorted_list

def write_file(file_name,context):

'''写文件操作'''

with open(file_name,'w') as fd:

fd.write('{0}'.format(context))

def reverse(list_origi):

'''将列表倒序排列'''

reverser_list = sorted(list_origi,reverse=True)

return reverser_list

def append_file(file_name,context):

'''追加内容到文件'''

with open(file_name,'a') as fd:

fd.write('\n{0}\n'.format(context))

if __name__ == '__main__':

list_origi = input('plese input a list:')

sorted_list = sort_list(list_origi)

write_file('list_test.txt',sorted_list)

reverser_list = reverse(sorted_list)

append_file('list_test.txt',reverser_list)

上面的代码中的input是关键,如果使用raw_input和sys.argv[1]都为字符串类型。例输入一个列表[1,2,3],后面两个函数将会把这个列表变为['[','1','2','3',',',',',']'],这种结果肯定不是我们想要的。使用input可以解决这个问题

6.用函数实现9*9乘法口诀

#!/usr/bin/env python

#coding:utf-8

'''

9x9乘法运算

'''

def multiplication(i):

'''

1x1=1

2x1=2,2x2=4

...

......

'''

a = 0

list1 = []

for y in [z for z in range(i) if z > 0]:

for x in [d for d in range(i) if d > 0]:

if x <= y:

b = "{0} x {1} = {2}".format(x,y,x*y)

list1.append(b)

print str(list1) + '\n',

list1 = []

multiplication(10)

打印结果:

['1 x 1 = 1']

['1 x 2 = 2', '2 x 2 = 4']

['1 x 3 = 3', '2 x 3 = 6', '3 x 3 = 9']

['1 x 4 = 4', '2 x 4 = 8', '3 x 4 = 12', '4 x 4 = 16']

['1 x 5 = 5', '2 x 5 = 10', '3 x 5 = 15', '4 x 5 = 20', '5 x 5 = 25']

['1 x 6 = 6', '2 x 6 = 12', '3 x 6 = 18', '4 x 6 = 24', '5 x 6 = 30', '6 x 6 = 36']

['1 x 7 = 7', '2 x 7 = 14', '3 x 7 = 21', '4 x 7 = 28', '5 x 7 = 35', '6 x 7 = 42', '7 x 7 = 49']

['1 x 8 = 8', '2 x 8 = 16', '3 x 8 = 24', '4 x 8 = 32', '5 x 8 = 40', '6 x 8 = 48', '7 x 8 = 56', '8 x 8 = 64']

['1 x 9 = 9', '2 x 9 = 18', '3 x 9 = 27', '4 x 9 = 36', '5 x 9 = 45', '6 x 9 = 54', '7 x 9 = 63', '8 x 9 = 72', '9 x 9 = 81']

乘法小习题

#!/usr/bin/env python

# coding:utf-8

# Time:2017/12/27/0027 18:19

# write_by: ping

# script_name:multiplication.py

'''

ABCD * 9 = DCBA

分别算出 A、B、C、D

A (0,9]

B [0,9]

C [0,9]

D (0,9]

'''

def multi():

i = 0

for alpha in range(1, 10):

for beta in range(0, 10):

for gamma in range(0, 10):

for delta in range(1, 10):

left = int(alpha)*1000 + int(beta)*100 + int(gamma)*10 + int(delta)

right = int(delta)*1000 + int(gamma)*100 + int(beta)*10 + int(alpha)

i += 1

if left * 9 == right:

return "A = {}, B = {}, C = {}, D = {}.循环次数{}".format(alpha,beta,gamma,delta,i)

def main():

print multi()

if __name__ == '__main__':

main()

python学习课后练习题_python初步学习-练习题相关推荐

  1. python语言1002python语言_PYTHON语言学习

    PYTHON 语言学习 通过两个星期的自学 python 语言,初步了解到 python 的知识构架.它比 C 语言和 C++ 语 言在某种程度上来说要简单些, 但是也有很多我不懂的东西. 陈老师给我 ...

  2. python组合数据类型选择题_python基础学习——基础数据类型练习题(二)

    一.根据要求查找元组中的指定元素 l1=[11,22,33] l2=[22,33,44] 1)获取元组l1.l2中内容相同的元素 l1=[11,22,33] l2=[22,33,44]for i in ...

  3. python的顶级高手_Python+深度学习

    自从吉多·范罗苏姆1989年为打发圣诞节假期时间而写下用于编写自动化脚本的Python之后,30多年的时间过去了,随着功能不断完善和版本更新,目前Python已成为最流行的一种编程语言,并被广泛用于开 ...

  4. python 字符串切割例题_Python字符串及练习题

    1.变量名命名规则 # 中文是可以作为变量名的,但不建议姓名 = "hello"print(姓名)# 变量名可以由字母,数字或者下划线;# 变量名只能以字母或者下划线组成;# 变量 ...

  5. python人工智能学多久_Python人工智能学习需要多久?什么学历可以学习?

    当下有很多热门的技术,Python人工智能就是其中之一,在薪资待遇方面AI类岗位.大数据类岗位普遍排名在前.同时人才需求量一直处于上升趋势中,因此越来越多人都想参加Python人工智能培训,那么人工智 ...

  6. python爬虫自学路线_python 爬虫学习路线:从入门到进阶

    大家好,我是凉拌 今天给大家详解一下我的爬虫学习路线. 对于小白来说,爬虫可能是一件非常复杂.技术门槛很高的事情.比如有的人则认为先要掌握网页的知识,遂开始 HTML\CSS,结果入了前端的坑,浪费了 ...

  7. python 声明变量类型_python基础学习03数据类型和变量

    数据类型和变量 1. 数据类型 1.1 整数 Python中不限制整数正负及大小,例如:1,-1,100,-100等等.计算机常用十进制和十六进制表示数值,比如十六进制表示方法是用前缀0x加后缀0-9 ...

  8. python框架怎么学_Python框架学习

    Python框架学习 基于flask框架的MySql数据库交互系统. 1.开发环境 #系统:win10 #python版本:PY3.6 #MySQL版本:MySQL5.6 #开发工具:Pycharm ...

  9. python中向量长度_Python线性代数学习笔记——什么是向量?实现我们自己的向量...

    上一篇已经说明了为什么要学习线性代数? 下面我们正式开始学习 一切从向量开始 什么是向量,究竟为什么引⼊向量? 从研究一个数,变成了研究一组数,向量表示的就是一组数 学过中学物理都知道力,速度,加速度 ...

最新文章

  1. linux下安装nagios
  2. 获取网站Alexa排名数值的方法
  3. 物理光学1 波动方程与基础波函数
  4. 深入理解JavaScript之Event Loop
  5. xpath选择当前结点的子节点
  6. 从单纯聊天到在线生活
  7. 【温故而知新】HTTP 报文
  8. Shell编程之一:Shell基础编程
  9. UnityShader22:序列帧动画
  10. 9008刷机模式写入超时刷机帮_【转】高通9008模式刷机,让小米刷机不再畏惧
  11. c语言对整形indexing,C语言运算符另类分类法
  12. 查询vue版本时报错:“文件名、目录名或卷标语法不正确“
  13. UE4 个人学习知识点记录3
  14. **将古典融汇到现代(二)一座连接蕴涵式和三段论的桥--皮尔斯逻辑之五**
  15. 紫光国芯 数字后端 面经
  16. Qt美化之基础控件美化
  17. 数据结构c语言版胡学刚答案,哈夫曼树的建立与实现(最终版)最新版
  18. 计算机驱动安装的几个方法,不会安装驱动有福了,2个方法教你安装驱动程序,非常实用的知识...
  19. PBID外部工具:Model Analyzer
  20. fat32 ntfs有什么不同

热门文章

  1. 如何用好消息推送(push)做APP运营
  2. 每日记载内容总结39
  3. 浅析MongoDB用户管理
  4. [HTML5 Canvas学习]绘制矩形
  5. pix4d无人机影像处理_让无人机创造更大价值?你还差一个Pix4D培训会!
  6. 对方服务器未响应,重新投递中 postfix手心,我配置的Postfix邮件服务器邮件发不出去,在mail.log里显示如下~请求帮助...
  7. linux安装协议,在Linux中安装IPv6协议
  8. 查看nginx版本_2:快速搭建Nginx
  9. 常用正则表达式锦集与Python中正则表达式的用法
  10. cad插件制作教程_CAD电子签名制作教程