为什么在Python中未定义此变量?

雅各布·格罗斯

我一直在尝试制作python摩尔斯电码翻译器,并且使其过于复杂,我想继续我为摩尔斯电码翻译器所走的道路,但是遇到了一个问题。

Traceback (most recent call last):
  File "python", line 114, in <module>
NameError: name 'firstletter' is not defined

我不知道为什么没有定义此变量。这是代码

wordinput = input("What do you want to convert")
word = str(wordinput.upper)

if word[0] == 'A':
    firstletter = ".-"
elif word[0] == "B":
    firstletter = "-..."
elif word[0] == 'C':
    firstletter = '-.-.'
elif word[0] == 'D':
    firstletter = '-..'
elif word[0] == 'E':
    firstletter = '.'
elif word[0] == 'F':
    firstletter = '..-.'
elif word[0] == 'G':
    firstletter = '--.'
elif word[0] == "H":
    firstletter = '....'
elif word[0] == "I":
    firstletter = '..'
elif word[0] == 'J':
    firstletter = ".."
elif word[0] == 'K':
    firstletter = '-.-'
elif word[0] == 'L':
    firstletter = '.-..'
elif word[0] == 'M':
    firstletter = '--'
elif word[0] == 'N':
    firstletter = '-.'
elif word[0] == 'O':
    firstletter = '---'
elif word[0] == 'P':
    firstletter = '.--.'
elif word[0] == 'Q':
    firstletter = '--.-'
elif word[0] == 'R':
    firstletter = '.-.'
elif word[0] == 'S':
    firstletter = '...'
elif word[0] == 'T':
    firstletter = '-'
elif word[0] == 'U':
    firstletter = '..-'
elif word[0] == 'V':
    firstletter = '...-'
elif word[0] == 'W':
    firstletter = '.--'
elif word[0] == 'X':
    firstletter = '-..-'
elif word[0] == 'Y':
    firstletter = '-.--'
elif word[0] == 'Z':
    firstletter = '--..'

if word[1] == 'A':
    secondletter = ".-"
elif word[1] == "B":
    secondletter = "-..."
elif word[1] == 'C':
    secondletter = '-.-.'
elif word[1] == 'D':
    secondletter = '-..'
elif word[1] == 'E':
    secondletter = '.'
elif word[1] == 'F':
    secondletter = '..-.'
elif word[1] == 'G':
    secondletter = '--.'
elif word[1] == "H":
    secondletter = '....'
elif word[1] == "I":
    secondletter = '..'
elif word[1] == 'J':
    secondletter = ".."
elif word[1] == 'K':
    secondletter = '-.-'
elif word[1] == 'L':
    secondletter = '.-..'
elif word[1] == 'M':
    secondletter = '--'
elif word[1] == 'N':
    secondletter = '-.'
elif word[1] == 'O':
    secondletter = '---'
elif word[1] == 'P':
    secondletter = '.--.'
elif word[1] == 'Q':
    secondletter = '--.-'
elif word[1] == 'R':
    secondletter = '.-.'
elif word[1] == 'S':
    secondletter = '...'
elif word[1] == 'T':
    secondletter = '-'
elif word[1] == 'U':
    secondletter = '..-'
elif word[1] == 'V':
    secondletter = '...-'
elif word[1] == 'W':
    secondletter = '.--'
elif word[1] == 'X':
    secondletter = '-..-'
elif word[1] == 'Y':
    secondletter = '-.--'
elif word[1] == 'Z':
    secondletter = '--..'





print(firstletter + secondletter)
import os
os.system("pause")
修剪

您的问题是作业:

word = str(wordinput.upper)

您未能将函数调用up相反,您将功能描述符分配给了word当您将该描述符转换为字符串时,word的值为

"<built-in method upper of str object at 0x7f377ea143e8>"

因此,无论输入内容如何,​​您都将尝试转换'<'和'b';第一个不在列表中,因此您的程序崩溃了。

更改该行以调用例程:

word = str(wordinput.upper() )

进一步的工作

The problem will still occur if the user enters any input other than pure letters.  Add a line before your long **if** to give a default value, whatever you'd like to see printed if the input isn't a letter.  I use a space here:

firstletter = ' '

改进

使用参考词典:

code = { 'A': ".-", 'B': "-...", etc.
       }

添加循环以遍历字符串并转换各个字母:

for c in word:
    if c in code:
        morse_char = code[c]
    else:
        morse_char = ' '
    print(morse_char)

这样可以节省您的手指肌肉吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么此变量的值未定义

来自分类Dev

为什么有时未定义此变量?

来自分类Javascript

为什么在React中未定义此数组?

来自分类Dev

为什么此代码中的finallyDecrypt方法未定义?

来自分类Dev

为什么简写定义的变量在React中未定义

来自分类Dev

为什么未定义此数组?

来自分类Dev

为什么此语句未定义?

来自分类Dev

为什么在JS类方法中定义和调用的函数中未定义此变量。我认为这是窗口

来自分类Dev

为什么 js 中的提升变量显示未定义

来自分类Dev

为什么我的变量在javascript中返回未定义?

来自分类Dev

为什么在ComponentWillMount中声明的变量未定义?

来自分类Dev

为什么在全局声明中未定义变量?

来自分类Dev

为什么在闭包 Laravel 中未定义变量?

来自分类Dev

为什么我的事件变量在输入中未定义?

来自分类Dev

为什么我的变量在 init 中未定义?

来自分类Dev

为什么变量在$ {document).keypress中变得未定义?

来自分类Dev

为什么在 nodejs express 中未定义变量

来自分类Dev

为什么我的变量在 javascript 中未定义?

来自分类Dev

为什么全局对象中的变量未定义,即使它尚未定义?

来自分类Dev

为什么未定义变量?

来自分类Dev

为什么变量未定义?

来自分类Dev

为什么未定义变量?

来自分类Dev

为什么此必需函数的变量参数返回未定义?

来自分类Dev

为什么我的代码中已明确定义了未定义的变量,为什么呢?

来自分类Dev

为什么在方法中未定义变量但在Typescript的构造函数中未定义变量

来自分类Dev

未定义的变量:此

来自分类Dev

Sencha Touch-为什么在我的自定义组件中未定义此功能?

来自分类Dev

为什么在JavaScript中未定义“ [] [[]]”

来自分类Dev

为什么此代码未定义行为?

Related 相关文章

  1. 1

    为什么此变量的值未定义

  2. 2

    为什么有时未定义此变量?

  3. 3

    为什么在React中未定义此数组?

  4. 4

    为什么此代码中的finallyDecrypt方法未定义?

  5. 5

    为什么简写定义的变量在React中未定义

  6. 6

    为什么未定义此数组?

  7. 7

    为什么此语句未定义?

  8. 8

    为什么在JS类方法中定义和调用的函数中未定义此变量。我认为这是窗口

  9. 9

    为什么 js 中的提升变量显示未定义

  10. 10

    为什么我的变量在javascript中返回未定义?

  11. 11

    为什么在ComponentWillMount中声明的变量未定义?

  12. 12

    为什么在全局声明中未定义变量?

  13. 13

    为什么在闭包 Laravel 中未定义变量?

  14. 14

    为什么我的事件变量在输入中未定义?

  15. 15

    为什么我的变量在 init 中未定义?

  16. 16

    为什么变量在$ {document).keypress中变得未定义?

  17. 17

    为什么在 nodejs express 中未定义变量

  18. 18

    为什么我的变量在 javascript 中未定义?

  19. 19

    为什么全局对象中的变量未定义,即使它尚未定义?

  20. 20

    为什么未定义变量?

  21. 21

    为什么变量未定义?

  22. 22

    为什么未定义变量?

  23. 23

    为什么此必需函数的变量参数返回未定义?

  24. 24

    为什么我的代码中已明确定义了未定义的变量,为什么呢?

  25. 25

    为什么在方法中未定义变量但在Typescript的构造函数中未定义变量

  26. 26

    未定义的变量:此

  27. 27

    Sencha Touch-为什么在我的自定义组件中未定义此功能?

  28. 28

    为什么在JavaScript中未定义“ [] [[]]”

  29. 29

    为什么此代码未定义行为?

热门标签

归档