Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 打印数字显示为空白_Python_Python 3.x - Fatal编程技术网

Python 打印数字显示为空白

Python 打印数字显示为空白,python,python-3.x,Python,Python 3.x,以下是Python 3编程的代码:Python语言的完整介绍: 导入系统 零=[“***”、“***”、“***”、“***”、“***”、“***”、“***”、“***”] 一=[“*”、“*”、“*”、“*”、“*”、“*”、“*”、“***”] 二=[“***”、“***”、“***”、“*”、“*”、“*”、“*”、“****”] 三个=[“***”,“***”,“*”,“***”,“*”,“*”,“***”,“*”,“***”,“*”] 四=[“*”、“*”、“*”、“*”、“*”、

以下是Python 3编程的代码:Python语言的完整介绍:

导入系统 零=[“***”、“***”、“***”、“***”、“***”、“***”、“***”、“***”] 一=[“*”、“*”、“*”、“*”、“*”、“*”、“*”、“***”] 二=[“***”、“***”、“***”、“*”、“*”、“*”、“*”、“****”] 三个=[“***”,“***”,“*”,“***”,“*”,“*”,“***”,“*”,“***”,“*”] 四=[“*”、“*”、“*”、“*”、“*”、“****”、“*”, " * "] 五个=[“****”、“*”、“*”、“****”、“*”、“****”、“****”、“****”] 六个=[“***”、“*”、“*”、“****”、“****”、“****”、“****”、“****”] 七=[“****”、“*”、“*”、“*”、“*”、“*”、“*”、“*”、“*”] 八个=[“****”、“****”、“****”、“****”、“****”、“****”、“****”] 九=[“****”、“****”、“****”、“****”、“*”、“*”、“*”] 数字=[零,一,二,三,四,五,六,七,八,九] 尝试: 数字=系统argv[0] 行=0 当行<7时: line=“” 列=0 列 当我运行
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)