如何解决尝试在Python中使用条件初始化类变量
我正在尝试用Python创建一个类统计员。
此统计师类具有3个属性:每个属性都可以具有从0到100的整数值(整数):
- 逻辑
- 内存
- creativite
此类将具有以下方法:
initialization():通过使总和在111和177之间(不包括偶数和5的倍数)而将值随机分配给3个属性的方法。该方法将由对象的构造函数启动。 / p>
我有这样的代码:
import random
class Statisticien:
def __init__(self):
a = 0
b = 0
c = 0
somme = a + b + c
while somme >= 177 and somme <= 111 and (a%2 == 0) and (a%5 == 5) and (b%2 == 0) and(b%5 == 5) and (c%2 == 0) and (c%5 == 5) :
a = random.randint(0,178)
b = random.randint(0,178)
c = random.randint(0,178)
self.logique = a
self.memoire = b
self.creativite = c
test = Statisticien()
print(test.logique)
print(test.memoire
print(test.creativite)
>>>
0
0
0
此代码将0分配给我的属性logique,备忘录和creativite,但我不明白为什么,因为在我的条件下,数字a,b和c刚被修改。有人可以帮我理解为什么吗?也许解释一下如何解决我的问题?
解决方法
while条件似乎太复杂了。
尝试一下:
import random
class Statisticien:
def __init__(self):
a = 0
b = 0
c = 0
somme = a + b + c
while (somme <=111 or somme >= 177 or somme%2 == 0 or somme%5 == 0):
a = random.randint(0,178)
b = random.randint(0,178)
c = random.randint(0,178)
somme = a + b + c
self.logique = a
self.memoire = b
self.creativite = c
test = Statisticien()
print(test.logique)
print(test.memoire)
print(test.creativite)
,
我最终用以下代码成功了:
import random
class Statisticien:
def __init__(self):
a = 0
b = 0
c = 0
somme = a + b + c
while (somme >= 177) or (somme <= 111) or (a%2 == 0) or (a%5 == 0) or (b%2 == 0) or (b%5 == 0) or (c%2 == 0) or (c%5 == 0):
a = random.randint(0,178)
somme = a + b + c
self.logique = a
self.memoire = b
self.creativite = c
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。