微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改变量参数的Python函数

如何解决更改变量参数的Python函数

我该如何重写我的函数,以便它在运行时更改作为参数输入的变量?我读过,您必须在每个变量名之前写global,但是在abc参数之前写全局变量无效,我也找不到其他参数使其工作的方式。

import sys

sys.stdin = open("/Users/isym444/Desktop/PythonCP/CP1/Codewars/Practice/input.txt","r")
sys.stdout = open("/Users/isym444/Desktop/PythonCP/CP1/Codewars/Practice/output.txt","w")

""" sys.stdin = open("mixmilk.in","r")
sys.stdout = open("mixmilk.out","w") """

c1,m1 = map(int,input().split())
c2,m2 = map(int,input().split())
c3,m3 = map(int,input().split())


def fun1(a,b,c):
    amt = min(a,b - c)
    a -= amt
    c += amt


# pours 1 to 99
for i in range(1,34):
    fun1(m1,c2,m2)
    fun1(m2,c3,m3)
    fun1(m3,c1,m1)
# pour 100
fun1(m1,m2)

result = [m1,m2,m3]
for i in result:
    print(i)

请注意,这是解决USACO问题的方法:2018年12月竞赛,铜牌问题1.混合牛奶-> http://www.usaco.org/index.php?page=viewproblem2&cpid=855

解决方法

我认为这就是您要寻找的东西

[...]
def fun1(a,b,c):
    amt = min(a,b - c)
    a -= amt
    c += amt
    return (a,c)

# pours 1 to 99
for i in range(1,34):
    m1,c2,m2 = fun1(m1,m2)
    m2,c3,m3 = fun1(m2,m3)
    m3,c1,m1 = fun1(m3,m1)
# pour 100
m1,m2)
[...]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。