老师 您看下这段代码,实在搞不懂为什么全局变量money 不能与自己做运算 会报错
来源:8-13 划算还是不划算

gameboyer
2018-07-31
global money money = 0 def to_l4(): def compare() : suijishu = float(random.random()) if l3_to_l4_rate>=suijishu : money = four_shitou + 10 + money print(111) print(money) else : money = four_shitou + money print(222) print(money) compare() compare() to_l4()
下边是我自己改完的 老师您看下对不
import random
'''
购买1级石头
'''
l1_value = 0.75 # 1颗1级石头需要消耗0.75金
l1_value_diamond = 8 #1颗1级石头还需要消耗8个砖石
'''
合成3级石头
'''
l1_to_l3 = 12 #1个加12颗1级
l1_to_l3_gold = 0.39 # 消耗0.39金
l1_to_le_vit = 10 #10点体力
'''
合成4级石头
'''
l3_to_l4 = 16 # 1颗3级加16个一级
l3_to_l4_gold = 0.897 #消耗0.897金
l3_to_l4_vit = 10 #体力
l3_to_l4_rate = 0.4878 #概率 失败扣除16颗1级 但不消耗体力
'''
合成6级石头
'''
l4_to_l6 = 12 # 1个4级加12个4级
l4_to_l6_gold = 19.75
l4_to_l6_vit = 10
zhuanshi = 0.05
'''
市场1个6级石头卖750金
1个砖石 == 0.05金
1点体力vit == 1金
'''
l6_money = 750
one_shito = l1_value+l1_value_diamond*zhuanshi #一个一级石头的价钱
three_shitou = one_shito * 13 + l1_to_l3_gold + l1_to_le_vit #一个3级石头的价钱 = 13个1级 + 手续费 + 体力
four_shitou = three_shitou + 16 * one_shito + 0.897
# print(value, ..., sep, end, file, flush)
# global money
money = 0
n = 0
def to_l6():
def to_l4() :
global money
global n
suijishu = float(random.random())
if l3_to_l4_rate>=suijishu :
money = four_shitou + l3_to_l4_vit + money
n += 1
if n == 13 :
money = money + l4_to_l6_gold + l4_to_l6_vit
else :
to_l4()
else :
money = four_shitou + money
to_l4()
to_l4()
to_l6()
if money > l6_money :
print("最终合成6级石头的价钱:"+ str(money) + " so 买划算")
else :
print("最终合成6级石头的价钱:"+ str(money) + " so 合成划算")
2回答
-
7七月
2018-07-31
课程有讲吧,要定义成nonlocal
112018-07-31 -
7七月
2018-07-31
告诉我结果~ 是多少
092018-07-31
相似问题