回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>只是想玩一些LPTHW函数。我在这里编的:</p>
<pre><code>def character_class(intel, str, agil):
print "A barbarian's main attribute starts at: %d." % str
print "A wizard's main attribute is intel, and it starts at: %d." % intel
print "An archer's main attribute is agility, and has the default agility speed of: %d.\n" % agil
character_class(20, 40, 60)
print character_class
character_class(20 + 40, 40 + 50, 100 + 100)
print character_class
input1 = raw_input("Barbarian str:")
input2 = raw_input("Wizard intel:")
input3 = raw_input("Archer agil:")
character_class % (input1, input2, input3)
print character_class
</code></pre>
<p>下面是我在Powershell中得到的结果:</p>
<pre><code>A barbarian's main attribute starts at: 40.
A wizard's main attribute is intel, and it starts at: 20.
An archer's main attribute is agility, and has the default agility speed of: 60.
<function character_class at 0x025078B0>
A barbarian's main attribute starts at: 90.
A wizard's main attribute is intel, and it starts at: 60.
An archer's main attribute is agility, and has the default agility speed of: 200.
<function character_class at 0x025078B0>
Barbarian str:200
Wizard intel:300
Archer agil:400
Traceback (most recent call last):
File "test19.py", line 16, in <module>
character_class % (input1, input2, input3)
TypeError: unsupported operand type(s) for %: 'function' and 'tuple'
</code></pre>
<p>首先,在每次调用函数<code>character_class</code>之后出现的<code><function character_class at 0x025078B0></code>是什么?这在LPTHW练习19中没有出现。你知道吗</p>
<p>另外,我还尝试从用户那里获取原始输入,以插入到函数中。这是不可能的,还是我做错了?你知道吗</p>
<p>修订:将最后一行代码更改为:<code>character_class(input1, input2, input3)</code></p>
<p>这就是我现在得到的错误:</p>
<pre><code>A barbarian's main attribute starts at: 40.
A wizard's main attribute is intel, and it starts at: 20.
An archer's main attribute is agility, and has the default agility speed of: 60.
A barbarian's main attribute starts at: 90.
A wizard's main attribute is intel, and it starts at: 60.
An archer's main attribute is agility, and has the default agility speed of: 200.
Barbarian str:1000
Wizard intel:2000
Archer agil:3000
Traceback (most recent call last):
File "test19.py", line 16, in <module>
character_class(input1, input2, input3)
File "test19.py", line 2, in character_class
print "A barbarian's main attribute starts at: %d." % str
TypeError: %d format: a number is required, not str
</code></pre>
<p>最终修订:</p>
<pre><code>def character_class(intel, str, agil):
print "A barbarian's main attribute starts at: %d." % str
print "A wizard's main attribute is intel, and it starts at: %d." % intel
print "An archer's main attribute is agility, and has the default agility speed of: %d.\n" % agil
character_class(20, 40, 60)
character_class(20 + 40, 40 + 50, 100 + 100)
input1 = raw_input("Barbarian str:")
input2 = raw_input("Wizard intel:")
input3 = raw_input("Archer agil:")
inputa = int(input1)
inputb = int(input2)
inputc = int(input3)
character_class(inputa, inputb, inputc)
</code></pre>