老师 您看下这段代码,实在搞不懂为什么全局变量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

1
1
gameboyer
我看到第8章完。。。没看到老师输的nonlocal 估计是我粗心错过了吧 我再回去看看吧
2018-07-31
共1条回复

7七月

2018-07-31

告诉我结果~ 是多少

0
9
gameboyer
回复
7七月
不用了 我看错题了 失败了 3合成4 失败是不扣除3级石头的 谢谢老师了
2018-07-31
共9条回复

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14598 学习 · 4469 问题

查看课程