python核心编程 5-4 和5-5 题

上帝无言 2010-11-18 07:26:39
一、 判断闰年
二、小于1美元的面值,用25、10、5、1美分来找零钱。
例:0.76美元= 3个25美分和1个1美分。 这样最简单的组合。

我用 ‘/‘做除法整数是地板除,不正确,如果用float() 就没法判断是不是能被整除,因为始终有小数。

如果 ’/‘这个能像平时一样做出正确的除法就好了判断了,或者用别的,什么方法呢?

要是能像批处理那样 截取位数就很容易了哦。

求一方法!
...全文
174 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tim_spac 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a590687 的回复:]

闰年的这个 有结果了:
Python code

num = raw_input('Enter a year:')
a = int(num)%4
b = int(num)%100
c = int(num)%400
if a == 0:
if b == 0:
if c == 0:
print 'It is!'
else:
……
[/Quote]

a = int(num)%4
if a: return False
b = int(num)%100
if b: return True
c = int(num)%400
return False if c else True
上帝无言 2010-11-19
  • 打赏
  • 举报
回复


Z = raw_input('Enter the 0<Num<100:')
X = int(Z)
b = X%25 #或1美分零钱
b1 = X/25 #25美分数量

c = b%10
c1 = b/10 #10美分数量
d = c%5 #1美分数量
d1 = c/5

e = b%5 # 零钱仅多于5美分时候的 1美分数量
e1 = b/5 # 零钱仅多于5美分时候的 5美分数量
if b>10:
print '%d 个25美分'%b1
if c>5:
print '%d 个10美分'%c1
print '%d 个5美分'%d1
else:
print '%d 个10美分'%c1
print '%d 个1美分'%d
elif b>=5 and b1>0:
print '%d 个25美分'%b1
print '%d 个5美分'%e1
print '%d 个1美分'%e
elif b>=5 and b1 == 0:
print '%d 个5美分'%e1
print '%d 个1美分'%e
else:
print '%d 个25美分'%b1
print '%d 个1美分'%b
HAHA = raw_input('')

上帝无言 2010-11-19
  • 打赏
  • 举报
回复
错了, 等于5米分的时候 没写进去,愁死了
上帝无言 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 i_nbfa 的回复:]
1米元=100米分,扩大100倍不就得整了。
rm = 0.76;
m = int(rm * 100);
如果rm有拖尾也就是不足1美分比如0.769。
最后把米分数+(rm * 100 - m)就哦了。
[/Quote]

根据说的 扩大到整数。 能算出几个米分了,不过有点乱。
想了一天这题,没想出来好办法,全是最直接的逻辑。
有两个分支会算出 比如 0 个几米分。懒的改了

有个大问题就是 结果有中文会出乱码!
上回存为UTF-8 就可以,这回不行了。 谁能帮解决一下?


Z = raw_input('Enter the 0<Num<100:')
X = int(Z)
b = X%25 #或1美分零钱
b1 = X/25 #25美分数量

c = b%10
c1 = b/10 #10美分数量
d = c%5 #1美分数量
d1 = c/5

e = b%5 # 零钱仅多于5美分时候的 1美分数量
e1 = b/5 # 零钱仅多于5美分时候的 5美分数量
if b>10:
print '%d 个25美分'%b1
if c>5:
print '%d 个10美分'%c1
print '%d 个5美分'%d1
else:
print '%d 个10美分'%c1
print '%d 个1美分'%d
elif b>5 and b1>0:
print '%d 个25美分'%b1
print '%d 个5美分'%e1
print '%d 个1美分'%e
elif b>5 and b1 == 0:
print '%d 个5美分'%e1
print '%d 个1美分'%e
else:
print '%d 个25美分'%b1
print '%d 个1美分'%b
HAHA = raw_input()

iambic 2010-11-18
  • 打赏
  • 举报
回复
别搞那么多层的嵌套,书写的时候很容易写错。尽量把可以合并的if合并到一起,也更易于阅读。
I_NBFA 2010-11-18
  • 打赏
  • 举报
回复
1米元=100米分,扩大100倍不就得整了。
rm = 0.76;
m = int(rm * 100);
如果rm有拖尾也就是不足1美分比如0.769。
最后把米分数+(rm * 100 - m)就哦了。
上帝无言 2010-11-18
  • 打赏
  • 举报
回复
闰年的这个 有结果了:

num = raw_input('Enter a year:')
a = int(num)%4
b = int(num)%100
c = int(num)%400
if a == 0:
if b == 0:
if c == 0:
print 'It is!'
else:
print "It's not"
else:
print 'It is!'
else:
print "It's not"
a = raw_input()

iambic 2010-11-18
  • 打赏
  • 举报
回复
%是取余。
上帝无言 2010-11-18
  • 打赏
  • 举报
回复
这题考的是 取余 。 俺 有点想法。
上帝无言 2010-11-18
  • 打赏
  • 举报
回复
刚看完第5章, 多一点知识也没有哦。最好能控制在这之前的知识范围。

37,738

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧