没有从打印函数中输出

huangapple go评论97阅读模式
英文:

No output from print function

问题

当我尝试使用大写字母A或字母映射内的其他字符串来执行此行代码时,我收到一个空白输出。

  1. else:
  2. upper_ver = str.upper(cipher[cnt])
  3. print(upper_ver)

我最初尝试如下:

  1. else:
  2. print(str.upper(cipher[cnt]))

我不确定我哪里出错了,但我遇到了问题。

英文:

I am trying to create a program where a letter (in order), a,e,o,s,t, or r, is input and another letter, r,t,s,o,e, or a, is output. For example, if I were to enter a, I would receive r. I am also trying to make this case sensitive, so that if I were to input A, I would get R.

  1. secret=input("Enter string with 1 character: ")
  2. letter_map="aeostr"
  3. cipher="rtsoea"
  4. cnt=0
  5. while cnt < 6:
  6. if secret == letter_map[cnt]:
  7. if str.islower(secret):
  8. print(cipher[cnt])
  9. else:
  10. upper_ver = str.upper(cipher[cnt])
  11. print(upper_ver)
  12. cnt += 1

When I try to execute this line of code with an uppercase A or other string within the letter map

  1. else:
  2. upper_ver = str.upper(cipher[cnt])
  3. print(upper_ver)

I receive a blank output. I originally tried it as

  1. else:
  2. print(str.upper(cipher[cnt]))

I am not sure where I went wrong, but I am coming up short.

答案1

得分: 0

你应该在第一个if语句中使用 secret.lower() == letter_map[cnt]

  1. secret = input("输入一个字符:")
  2. letter_map = "aeostr"
  3. cipher = "rtsoea"
  4. cnt = 0
  5. while cnt < 6:
  6. if secret.lower() == letter_map[cnt]:
  7. if str.islower(secret):
  8. print(cipher[cnt])
  9. else:
  10. upper_ver = str.upper(cipher[cnt])
  11. print(upper_ver)
  12. cnt += 1
英文:

You should use secret.lower() == letter_map[cnt] in first if statement.

  1. secret=input(&quot;Enter string with 1 character: &quot;)
  2. letter_map=&quot;aeostr&quot;
  3. cipher=&quot;rtsoea&quot;
  4. cnt=0
  5. while cnt &lt; 6:
  6. if secret.lower() == letter_map[cnt]:
  7. if str.islower(secret):
  8. print(cipher[cnt])
  9. else:
  10. upper_ver = str.upper(cipher[cnt])
  11. print(upper_ver)
  12. cnt += 1

答案2

得分: 0

  1. secret=input("输入包含一个字符的字符串:")
  2. letter_map="aeostr"
  3. cipher="rtsoea"
  4. for cnt in range(6):
  5. if secret.lower() == letter_map[cnt]:
  6. if secret.islower():
  7. print(cipher[cnt])
  8. else:
  9. upper_ver = cipher[cnt].upper()
  10. print(upper_ver)
英文:

Here's a better version:

  1. secret=input(&quot;Enter string with 1 character: &quot;)
  2. letter_map=&quot;aeostr&quot;
  3. cipher=&quot;rtsoea&quot;
  4. for cnt in range(6):
  5. if secret == letter_map[cnt] or secret == letter_map[cnt].upper():
  6. if str.islower(secret):
  7. print(cipher[cnt])
  8. else:
  9. upper_ver = str.upper(cipher[cnt])
  10. print(upper_ver)

As Abdul Aziz pointed out, the issue is with the first if. letter_map only contains lowercase letters, and in Python, uppercase doesn't match lowecase; this can be a source of frustration to new Pythoners coming from languages where lowercase does match uppercase. I also changed the while loop as it makes a little better sense among intermediate Python programmers.

答案3

得分: 0

你根本不需要循环(除非我误解了功能)。这当然只是一个问题...

  1. if secret := input("输入一个字符: "):
  2. secret = secret[0] # 确保只有一个字符
  3. letter_map = "aeostr"
  4. cipher = "rtsoea"
  5. if (i := letter_map.find(secret)) >= 0:
  6. print(cipher[i])
  7. elif (i := letter_map.upper().find(secret)) >= 0:
  8. print(cipher.upper()[i])
  9. else:
  10. print('无效输入')

或者...

  1. if secret := input("输入一个字符: "):
  2. letter_map = "aeostr"
  3. letter_map += letter_map.upper()
  4. cipher = "rtsoea"
  5. cipher += cipher.upper()
  6. if (i := letter_map.find(secret[0])) >= 0:
  7. print(cipher[i])
  8. else:
  9. print('无效输入')
英文:

You don't need a loop at all (unless I'm misunderstanding the functionality). Surely it's just a matter of...

  1. if secret := input(&quot;Enter string with 1 character: &quot;):
  2. secret = secret[0] # ensure only one character
  3. letter_map = &quot;aeostr&quot;
  4. cipher = &quot;rtsoea&quot;
  5. if (i := letter_map.find(secret)) &gt;= 0:
  6. print(cipher[i])
  7. elif (i := letter_map.upper().find(secret)) &gt;= 0:
  8. print(cipher.upper()[i])
  9. else:
  10. print(&#39;Invalid input&#39;)

Or...

  1. if secret := input(&quot;Enter string with 1 character: &quot;):
  2. letter_map = &quot;aeostr&quot;
  3. letter_map += letter_map.upper()
  4. cipher = &quot;rtsoea&quot;
  5. cipher += cipher.upper()
  6. if (i := letter_map.find(secret[0])) &gt;= 0:
  7. print(cipher[i])
  8. else:
  9. print(&#39;Invalid input&#39;)

huangapple
  • 本文由 发表于 2023年2月24日 00:00:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/75547297.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定