首页 > 解决方案 > CS50 mario python不太舒服.rstrip函数

问题描述

我正在学习 CS50 课程,现在我正在使用 pset6,python Mario 代码。

对于 rstrip() 函数,它应该删除代码末尾的新行。我不知道发生了什么,它真的让我很烦(我认为这是一个语法错误,但我不确定)。

请如果您能提供帮助,那就太好了!

注意:我使用“+”符号表示“”只是为了个人理解。

我的代码:

def input_number(message):
    while True:
        try:
            user_input = int(input(message))
        except ValueError:
            continue
        else:
            return user_input



height = input_number("Height: ")
while height < 1 or height > 8:
    height = int(input("Height: "))


i = 0
while i < height:
    print("\n")
    x = height-1
    a = 0
    while x>=i:
        print("+".rstrip("\n"))
        x-=1

    while a<=i:
        print("#".rstrip("\n"))
        a+=1

    i+=1
#print("\n")

什么被打印:

Height: 5


+
+
+
+
+
#


+
+
+
+
#
#


+
+
+
#
#
#


+
+
#
#
#
#


+
#
#
#
#
#

预期输出:

    #
   ##
  ###
 ####
#####

谢谢!

标签: pythoncs50

解决方案


在打印方法中使用end=""而不是使用rstrip方法。

def input_number(message):
    while True:
        try:
            user_input = int(input(message))
        except ValueError:
            continue
        else:
            return user_input



height = input_number("Height: ")
while height < 1 or height > 8:
    height = int(input("Height: "))


i = 0
while i < height:
    x = height-1
    a = 0
    while x>=i:
        print(" ", end="")
        x-=1
    while a<=i:
        print("#", end="")
        a+=1
    print("")
    i+=1

输出:

Height: 5
     #
    ##
   ###
  ####
 #####

解释:

rstrip用于从字符串末尾删除空格。例如,当我们想从用户输入的字符串中删除不需要的空格时,我们可以rstrip这样做。的另一个用例rstrip是在读取文件时省略行中的空格。

另一方面,为了以所需格式格式化输出字符串,我们操作print方法。默认情况下,print方法在单独的行中输出值。

例如,

print("some string") 
print("another string") 

它将显示:

some string
another string

根据print 方法文档,我们可以在参数中使用字符串end来覆盖默认值end='\n'

例如,

print("some string", end="......") 
print("another string", end="!!!!!!") 

它将显示:

some string......another string!!!!!!

参考:


推荐阅读