我找不到一种方法让我的骰子模拟器将函数从字符串转换为整数。我一直在尝试合并“多少面”和“多少卷”功能,但我无法弄清楚。
def n():
for counter in range(1, r2):
random.randint(1, b)
n2 = n()
n2 = str(n2)
n2_int = int(n2)
n2_int = int(n2_int)
print('You rolled a', n2_int)
虽然公平地说,我对Python来说是一个相对菜鸟,已经放下它大约2年了。
我已经使用 ChatGPT 来解决它,但它没有帮助,并且花了一段时间在堆栈溢出上尝试修复它。仍然显示“TypeError:Int() 参数必须是字符串”和“ValueError:以 10 为基数的 int() 的文字无效:“无”的变体”
您的代码片段缺少数据。 r2从哪里来?您没有将其作为参数传递给您的函数:
如果您希望函数使用一个值,那么您必须向它传递一个值。 例如:
def sum_two_numbers(a, b):
result = a + b
print(result)
然后你必须调用该函数..意思是..告诉python使用这个函数并用实际值更改a,b..
sum_two_numbers(2,5)
这确实会返回7
看起来你想要实现的目标是这样的
import random
rolls = int(input("How many rolls?")) #create an int variable for rolls
sides = int(input("How many sides?")) #create an int variable for die sides
def n(r2, b): #define positional arguments to your function
for x in range(1, r2): #use your args in function
print(random.randint(1, b)) #print the random result of your die
n(rolls, sides) #your function call passing your previously created values
print(f'You rolled a {sides} sides die {rolls} times') #fancy report