python - 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
+
+
+
+
+
#
+
+
+
+
#
#
+
+
+
#
#
#
+
+
#
#
#
#
+
#
#
#
#
#
预期输出:
#
##
###
####
#####
谢谢!
解决方案
在打印方法中使用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!!!!!!
参考:
推荐阅读
- java - 如何在使用 HashSet 时维护插入顺序?
- socket.io - io.emit 发送数据的效率如何?
- html - 如何将元素固定在 flexbox 流的顶行(右侧)中,并且当它存在时仍然允许项目在其下方流动?
- javascript - Css关键帧动画仅适用于一个元素
- java - 使用 ARCore 优化大量 ModelRenderable 立方体?
- django - 如何使用命令 python manage.py startapp xxx 生成额外的文件?
- java - Spark Sql中poseexplode()的替代方法是什么,因为它不动态地接受可变数量的参数?
- spring-boot - Spring Eureka 寻找默认端口 8761 而不是自定义端口
- javascript - 如何将多个事件侦听器和查询选择器组合到一个函数中?
- javascript - 如何使用数组和 Jquery 填充下拉列表