Python 打印数字显示为空白
以下是Python 3编程的代码:Python语言的完整介绍: 导入系统 零=[“***”、“***”、“***”、“***”、“***”、“***”、“***”、“***”] 一=[“*”、“*”、“*”、“*”、“*”、“*”、“*”、“***”] 二=[“***”、“***”、“***”、“*”、“*”、“*”、“*”、“****”] 三个=[“***”,“***”,“*”,“***”,“*”,“*”,“***”,“*”,“***”,“*”] 四=[“*”、“*”、“*”、“*”、“*”、“****”、“*”, " * "] 五个=[“****”、“*”、“*”、“****”、“*”、“****”、“****”、“****”] 六个=[“***”、“*”、“*”、“****”、“****”、“****”、“****”、“****”] 七=[“****”、“*”、“*”、“*”、“*”、“*”、“*”、“*”、“*”] 八个=[“****”、“****”、“****”、“****”、“****”、“****”、“****”] 九=[“****”、“****”、“****”、“****”、“*”、“*”、“*”] 数字=[零,一,二,三,四,五,六,七,八,九] 尝试: 数字=系统argv[0] 行=0 当行<7时: line=“” 列=0 列Python 打印数字显示为空白,python,python-3.x,Python,Python 3.x,以下是Python 3编程的代码:Python语言的完整介绍: 导入系统 零=[“***”、“***”、“***”、“***”、“***”、“***”、“***”、“***”] 一=[“*”、“*”、“*”、“*”、“*”、“*”、“*”、“***”] 二=[“***”、“***”、“***”、“*”、“*”、“*”、“*”、“****”] 三个=[“***”,“***”,“*”,“***”,“*”,“*”,“***”,“*”,“***”,“*”] 四=[“*”、“*”、“*”、“*”、“*”、
bigdights.py
时,它显示以下内容:
我的Python版本是3.5.3。在
数字定义之前有一个额外的空格。这是一个语法错误,因此程序无法运行。在盲目复制和粘贴代码之前,请尝试理解正在复制的代码
这里的问题是digits=sys.argv[0]
。您还忽略了用法部分“用法:bigdights.py”
,作者显然误解了sys.argv
运行python bigdigates.py{number}
->sys.argv
将['bigdigates.py','number']
->使用digits=sys.argv[1]
从命令行参数实际检索数字。
您必须为程序提供一个命令行参数(一个数字),或者将digits=sys.argv[0]
更改为一个包含数字的字符串,例如digits=“1”
我没有可用的空闲空间,因此我不确定作为sys.argv[0]
使用的是什么,以及它为什么不抛出错误。您可以打印出sys.argv[0]
来测试这一点
从代码示例来看,书中的代码非常糟糕。内部while(while列
)对于所有<10的数字都是完全冗余的。变量命名(大写)非常可怕。这同样适用于使用不同的变量,这些变量只在大小写上有所不同(数字
和数字
)<对于
的code>会比好得多。如果这个例子是在
时引入的概念,那么它是一个相当糟糕的例子。只有我的2个实例。你知道你可以运行Python文件,而不是一次复制一个块粘贴到空闲的解释器中?另外,你需要digits=sys.argv[1]
。如果您试图使用<代码> sys .ARGV ,请从命令行运行脚本,而不是从RePL会话。您可能需要考虑“转到文件>新文件,然后粘贴代码”。这将使您更好地了解缩进(在本例中是关闭的),您也可以通过敲击键盘上的F5来运行代码。如果这是原因,那么这个问题就离题了,可能对未来的读者没有用处。请考虑删除和张贴评论。ᴏʟᴅsᴘᴇᴇᴅ 你可以像我刚才那样投票以“打字错误”结束。@Jean-Françoisfare没有投票,因为我不确定sys.argv[0]
是打字错误还是对sys.argv
的误解。非常感谢!我现在可以理解代码了!!!我发现sys.argv[0]是用户输入的命令行的脚本名。难怪它不能工作!
import sys
Zero = [" *** "," * * ","* *","* *","* *"," * * "," *** "]
One = [" * ", "** ", " * ", " * ", " * ", " * ", "***"]
Two = [" *** ", "* *", "* * ", " * ", " * ", "* ", "*****"]
Three = [" *** ", "* *", " *", " ** ", " *", "* *", " *** "]
Four = [" * ", " ** ", " * * ", "* * ", "******", " * ",
" * "]
Five = ["*****", "* ", "* ", " *** ", " *", "* *", " *** "]
Six = [" *** ", "* ", "* ", "**** ", "* *", "* *", " *** "]
Seven = ["*****", " *", " * ", " * ", " * ", "* ", "* "]
Eight = [" *** ", "* *", "* *", " *** ", "* *", "* *", " *** "]
Nine = [" ****", "* *", "* *", " ****", " *", " *", " *"]
Digits = [Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine]
try:
digits = sys.argv[0]
row = 0
while row < 7:
line = ""
column = 0
while column < len(digits):
number = int(digits[column])
digit = Digits[number]
line += digit[row] + " "
column += 1
print(line)
row += 1
except IndexError:
print("usage: bigdigits.py <number>")
except ValueError as err:
print(err, "in", digits)