python - Python 如何解释这个条件?

标签 python

我正在解决的问题解释如下:

2.1) Write a program that asks a user to input a color. If the color is black or white, output "The color was black or white". If it starts with a letter that comes after "k" in the alphabet, output "The color starts with a letter that comes after "k" in the alphabet". (Optional: consider both capitalized and non-capitalized words. Note: the order of the alphabet in Unix and Python is: symbols, numbers, upper case letters, lower case letters.)

这是作者的解决方案:

#!/usr/bin/env python
#
# guess a color
#
answer = raw_input ("Please enter a color: ")

if (answer == "black") or (answer == "white"):
 print "The color was black or white."
elif answer >= "k":
  print "The color starts with a letter that comes after \"k\" in the alphabet."

这是我对问题的回答:

#!usr/bin/env python
#
#This program asks the user to input a color

color = raw_input("Please, enter a color, any color.")

if (color == "black") or (color == "white"):
 print "The color was black or white."

elif color[0] != "a" or "b" or "c" or "d" or "e" or "f" or "g" or "h" or "i" or "j" or "k":
 print "The color starts with a letter that comes after 'k' in the alphabet."

else:
 print "The color was niether black nor white."

我无法理解作者的解决方案是如何工作的,特别是用于识别“颜色是否以字母表中“k”之后的字母开头”。

Python 是如何做到这一点的?

elif answer >= "k":

Python 如何识别第一个字符,例如 color[0] 以及 k 之外的字母范围?

最佳答案

因为一般来说,Python 序列(包括字符串)实现 lexicographical ordering对于他们的元素。因此首先比较元素 0,如果相同则比较元素 1,依此类推。

但请注意,您的解决方案是错误的。它被解析为 (color[0] != "a") 或 "b"或 "c"或 "d"或 "e"或 "f"或 "g"或 "h"或 "i"或“j”或“k”,仅当 color[0] == 'a' 时为 false。您正在寻找的 color[0] 不在 ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' 中, 'j') (你也不应该排除 'k'),但是使用 >= 只是一个非常非常干净的事情。

关于python - Python 如何解释这个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8775467/

相关文章:

python - 如何在两个张量之间进行元素卷积?

python - 使用 google-perftools 编译 Python 2.7.2

python - Python 中 Azure Functions 的 Blob 名称模式

python - 使用模式阈值识别单词列表中的模式

python - 通过两个元素的集合合并两个数组

javascript - 使用 node-forge 加密并使用 python 和 RSA-OAEP 解密

带有 **kwargs(星号)的 python3 数据类

python - drop_sel 不接受切片

python - 如何解析 key=value 格式的文件

python - 如何在azure上运行基于python3.7的flask web api