Mario - CS50x 2026

待解决的问题
在一个名为 sentimental-mario-more 的文件夹中创建一个名为 mario.py 的文件,编写一个程序,使用井号 (#) 作为砖块来重新构建一个半金字塔,就像你在 问题集 1 中所做的那样。不过这一次,你的程序应该用 Python 编写!
演示
细节要求
- 为了让题目更有趣,首先使用
get_int提示用户输入金字塔的高度,高度应为1到8之间(含)的正整数。(上图中展示的两个半金字塔的高度为4,每个半金字塔的宽度也为4,中间隔着2个空格)。 - 如果用户未能提供一个不大于
8的正整数,你应该重新提示用户输入。 - 然后,(在
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/more
风格
style50 mario.py
如何提交
在你的终端中,执行以下命令来提交你的工作,并根据提示回答问题。
submit50 cs50/problems/2026/x/sentimental/mario/more