Mario - CS50x 2026

Mario 跳上金字塔的截图

待解决的问题

在名为 sentimental-mario-less 的文件夹中,创建一个名为 mario.py 的文件,编写一个程序,使用井号 (#) 作为方块来重新构建一个半金字塔,正如你在 问题集 1 中所做的那样。这次你的程序应该用 Python 编写!

演示

细节要求

  • 为了让事情更有趣,首先使用 get_int 提示用户输入半金字塔的高度,这是一个介于 18 之间(包含 18)的正整数。
  • 如果用户未能提供一个介于 18 之间的正整数,你应该重新提示用户输入。
  • 然后,(在 print 函数和一个或多个循环的帮助下)生成所需的半金字塔。
  • 注意将半金字塔的左下角与终端窗口的左边缘对齐。

如何测试

虽然此问题可以使用 check50,但建议你先针对以下每种情况自行测试代码。

  • 运行程序 python mario.py 并等待输入提示。输入 -1 并按回车。你的程序应该拒绝此输入,视为无效,并重新提示用户输入另一个数字。
  • 运行程序 python mario.py 并等待输入提示。输入 0 并按回车。你的程序应该拒绝此输入,视为无效,并重新提示用户输入另一个数字。
  • 运行程序 python mario.py 并等待输入提示。输入 1 并按回车。你的程序应该生成以下输出。确保金字塔与终端的左下角对齐,并且每行末尾没有多余的空格。
#
  • 运行程序 python mario.py 并等待输入提示。输入 2 并按回车。你的程序应该生成以下输出。确保金字塔与终端的左下角对齐,并且每行末尾没有多余的空格。
 #
##
  • 运行程序 python mario.py 并等待输入提示。输入 8 并按回车。你的程序应该生成以下输出。确保金字塔与终端的左下角对齐,并且每行末尾没有多余的空格。
       #
      ##
     ###
    ####
   #####
  ######
 #######
########
  • 运行程序 python mario.py 并等待输入提示。输入 9 并按回车。你的程序应该拒绝此输入,视为无效,并重新提示用户输入另一个数字。然后,输入 2 并按回车。你的程序应该生成以下输出。确保金字塔与终端的左下角对齐,并且每行末尾没有多余的空格。
 #
##
  • 运行程序 python mario.py 并等待输入提示。输入 foo 并按回车。你的程序应该拒绝此输入,视为无效,并重新提示用户输入另一个数字。
  • 运行程序 python mario.py 并等待输入提示。不输入任何内容直接按回车。你的程序应该拒绝此输入,视为无效,并重新提示用户输入另一个数字。

正确性

check50 cs50/problems/2026/x/sentimental/mario/less

代码风格

style50 mario.py

如何提交

在终端中执行以下命令来提交你的作业,并按照提示回答问题。

submit50 cs50/problems/2026/x/sentimental/mario/less