免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7280 | 回复: 28
打印 上一主题 下一主题

有没有人跟我一起做python习题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-29 21:09 |只看该作者 |倒序浏览
本帖最后由 paktc 于 2012-11-29 21:12 编辑

以前学C语言和其他脚本做了一些不错的题目,
虽然做题目不是必须的,但是这样是熟悉一门语言的好办法,老题目已经不想重做了。
在oschina问了一下有没有习题推荐,于是得到了一个不错的网址。

so,有没有人跟我一样刚学python有点基础,需要练习的?
我会在这个主题下面跟帖的形式做题,避免开多个主题。


yhc0309 回答于 2012-11-29 17:14
http://projecteuler.net/problems
前面简单,难度逐渐增大,但也有例外


如果各位有适合python的习题也发一份,谢谢!

论坛徽章:
0
2 [报告]
发表于 2012-11-29 21:14 |只看该作者
本帖最后由 paktc 于 2012-11-29 21:30 编辑

Problem 1
05 October 2001
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.



做了两个思路

  1. spec=(3,5)
  2. ever=0
  3. sum=0
  4. for i in range(1,1001,1):
  5.     for j in spec:
  6.         if i%j == 0:
  7.             if i != ever:
  8.                 sum+=i
  9.                 ever=i
  10. print sum
复制代码

  1. SUM=0
  2. max_num=1000
  3. max_1=max_num//3
  4. max_2=max_num//5

  5. for i in range(1,(max_1+1)):
  6.     SUM+=3*i

  7. for i in range(1,(max_2+1)):
  8.     tmp=5*i
  9.     if tmp%3 != 0:
  10.         SUM+=tmp
  11.         
  12. print SUM
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-11-29 21:48 |只看该作者
本帖最后由 paktc 于 2012-11-29 22:36 编辑

第一题,好像python有个用序列列表直接*3的用法。。。代码简单很多

但是我不知道正确答案。。。
网上翻到一些别人做的,好简洁。搁置了太久,脑子生锈了啊。

sum=0
for i in range(1,1001,1):
        if (i%3 == 0) or (i%5 == 0):
                sum+=i

print sum


论坛徽章:
0
4 [报告]
发表于 2012-11-29 21:49 |只看该作者
本帖最后由 paktc 于 2012-11-29 21:51 编辑

Problem 2
19 October 2001

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million,
find the sum of the even-valued term

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
5 [报告]
发表于 2012-11-29 22:13 |只看该作者
学生党还是先学c吧, 学python就学傻了.

论坛徽章:
0
6 [报告]
发表于 2012-11-29 22:17 |只看该作者
本帖最后由 paktc 于 2012-11-29 22:33 编辑

回复 5# linux_c_py_php


工作3年了,但我不是IT行业的,C基础掌握过,写过一些opengl。
python才不是我第一个学的程序语言。

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
7 [报告]
发表于 2012-11-29 22:40 |只看该作者
本帖最后由 linux_c_py_php 于 2012-11-29 22:40 编辑

唉, 如果你真的深入学习了开源linux c, 你就不会说这些了.

脚本是给懒人用的, 不是给素人用的, 脚本不能创造什么, 只能简化点什么.

论坛徽章:
0
8 [报告]
发表于 2012-11-29 22:43 |只看该作者
本帖最后由 paktc 于 2012-11-29 22:50 编辑

回复 8# linux_c_py_php


    看需求吧,我是那种只需要简单编程满足个人需求的用户。C语言需要编译,shell适合linux,也没有诸多扩展,
perl处理字符的时候感觉真是浑然天成,但是写长了对我这个业余来说有点头痛。py成为适合选择。
    说的是那份 《LINUX C 一站式学习》 吗?

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
9 [报告]
发表于 2012-11-30 09:42 |只看该作者
http://pe.spiritzhang.com/index.php/2011-05-11-09-44-54

再给你个地址

欧拉计划里边大量的题目可以用python一行解决。

比如这个
>>> sum(i for i in range(1000) if not i%3 or not i%5)
233168
>>> sum(set(range(5,1000,5)) | set(range(3,1000,3)))
233168

论坛徽章:
0
10 [报告]
发表于 2012-11-30 11:09 |只看该作者
本帖最后由 paktc 于 2012-11-30 11:10 编辑

回复 10# ssfjhh

楼上好人,一句话解决,学习了!
做题能发现自己的不足,我重新打基础去。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP