菜鸟又来问问题咯~TAT

菜鸟又来问问题咯~TAT

是要写一个关于 检查数字奇偶性 的小程序
要用到WHILE LOOP 和 IF STATEMENT。

num = int(raw_input("Please input a nonnegative integer: "))

r = ""
while r != 0:
    r = num%2
    if r == 1:
        print "The binary reprensentation of " + str(num) + "(10) has odd parity."
    elif r != 0:
        r1 = num%2
        num1 = num/2
   
print "The binary reprensentation of " + str(num) + "(10) has even parity."
   


请问这段代码哪里有错?

因为我检查奇数的时候程序就无限的打出 "The binary reprensentation of " + str(num) + "(10) has odd parity." 这一段。

多谢帮忙!
同学你好
留学海外的吧?
while循环没有退出所以不停的打印
直接删掉while那一行就好了
貌似不需要while
while True:
    num = int(raw_input("Please input a nonnegative integer: "))
    if num==0:
        print 'error'
    elif num%2==1:
        print "The binary reprensentation of " + str(num) + "(10) has odd parity."
        break
    else:
        print "The binary reprensentation of " + str(num) + "(10) has even parity."
        break
   
我也是菜鸟,你还有其他功课的话都发上来啊,我很感兴趣。这个是我自己做的。


QUOTE:
原帖由 作业没做完 于 2009-2-4 10:41 发表
是要写一个关于 检查数字奇偶性 的小程序
要用到WHILE LOOP 和 IF STATEMENT。

num = int(raw_input("Please input a nonnegative integer: "))

r = ""
while r != 0:
    r = num%2
    if r == 1:
...

你的程序里
r应该是个开关吧
你没有用break去中断 所以当满足循环条件的时候就会打印出"The binary reprensentation of " + str(num) + "(10) has odd parity."然后再次去循环再次打印出重复的东西
谢谢同学
呃。。我是啊~~

但是题目要求要WHILE啊。。5555
break 换成 continue


QUOTE:
原帖由 zhenglxd 于 2009-2-4 11:03 发表
while True:
    num = int(raw_input("Please input a nonnegative integer: "))
    if num==0:
        print 'error'
    elif num%2==1:
        print "The binary reprensentation of " + str(num) ...

好的好的 没有问题……
我每个星期都会有问题的STO。。。。当然希望我问题越来越少 能自己解决就好了TAT~~

谢谢你啊!


QUOTE:
原帖由 作业没做完 于 2009-2-4 11:44 发表



好的好的 没有问题……
我每个星期都会有问题的STO。。。。当然希望我问题越来越少 能自己解决就好了TAT~~

谢谢你啊!

问题是无止尽的,关键是找到解决问题的方法和思路
import sys
while True:
    try:
        num = int(raw_input("Please input a nonnegative integer: "))
    except ValueError:
        print 'error'
        continue
    if num==0:
        print 'error'
    elif num%2==1:
        print "The binary reprensentation of " + str(num) + "(10) has odd parity."
        continue
    else:
        print "The binary reprensentation of " + str(num) + "(10) has even parity."
        continue


QUOTE:
原帖由 zhenglxd 于 2009-2-4 14:20 发表
if num==0:
        print 'error'
    elif num%2==1:
        print "The binary reprensentation of " + str(num) + "(10) has odd parity."
        continue
    else:
        print "The binary reprensentation of " + str(num) + "(10) has even parity."
        continue

这么多continue有必要么?