鱼C论坛

 找回密码
 立即注册
查看: 2330|回复: 10

课后联系题,方法比较优劣

[复制链接]
发表于 2017-1-4 20:30:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
方法1:
  1. i = 0
  2. while 0<=i<=100:
  3.     if(i%2 ==1):
  4.         print(i,end='')
  5.     i +=1
复制代码


方法2:
  1. i = 0
  2. while i <= 100:
  3.     if i % 2 != 0:
  4.         print(i, end=' ')
  5.         i += 1
  6.     else:
  7.         i += 1
复制代码


题目要求是输出0-100之间的所有奇数,请问方法1和方法2比有哪些不足?
谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-4 21:05:00 | 显示全部楼层
就用第一种就行了啊,编程有个原则,就是我们写的代码要尽量简单嘛!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-4 21:09:48 | 显示全部楼层
jina110 发表于 2017-1-4 21:05
就用第一种就行了啊,编程有个原则,就是我们写的代码要尽量简单嘛!

第一种有没有什么不规范的地方存在?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-4 21:14:34 | 显示全部楼层
mrtaotie 发表于 2017-1-4 21:09
第一种有没有什么不规范的地方存在?

没有
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-4 21:17:37 | 显示全部楼层
要简洁,那就是试试:
o = [print(i, end=' ') for i in range(100) if i%2]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-4 22:17:41 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-4 22:27:04 | 显示全部楼层
jerryxjr1220 发表于 2017-1-4 21:17
要简洁,那就是试试:
o =

因为刚学,所以不太完全看得懂这个语法,还劳烦费点时间讲解下,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-4 22:33:51 | 显示全部楼层
mrtaotie 发表于 2017-1-4 22:27
因为刚学,所以不太完全看得懂这个语法,还劳烦费点时间讲解下,谢谢

程序的逻辑和你写的是一样的,只是我用了列表推导式,这样就可以把循环、判断和打印都并到一行当中了。
因为print()函数的返回结果是None, 为了不显示None,就把它赋值给了o
你可以print (o)看一下返回的结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-4 23:07:39 | 显示全部楼层
jerryxjr1220 发表于 2017-1-4 22:33
程序的逻辑和你写的是一样的,只是我用了列表推导式,这样就可以把循环、判断和打印都并到一行当中了。
...

我在file内保存[print(i, end=' ') for i in range(100) if i%2]然后点运行,在idle shell里面直接输出1-99的所有奇数,没有[None x50];但是如果我在shell直接运行[print(i, end=' ') for i in range(100) if i%2]的话,为什么又会输出1,3,...,99,[None x50]呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-4 23:22:50 From FishC Mobile | 显示全部楼层
因为保存在文件中运行的话,不会输出程序返回值,除非你调用程序返回值。而直接在shell中执行的话,是会返回程序返回值的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-4 23:24:55 | 显示全部楼层
jerryxjr1220 发表于 2017-1-4 23:22
因为保存在文件中运行的话,不会输出程序返回值,除非你调用程序返回值。而直接在shell中执行的话,是会返 ...

ok,谢谢你,好梦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-24 21:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表