繁体   English   中英

“如何修改以下程序,使其以特定格式打印?”

[英]“How can I modify the below program so it prints in a specific format?”

我正在尝试修改以下程序,因此它将以以下格式打印字符串

输入Fred, 4

输出

Fred

Fred Fred

Fred Fred Fred

Fred Fred Fred Fred

此代码中有3个错误:

def prlines(str, num):

    n in range(0,num):

    print (str (n + 1))


prlines()

所以我已经尝试了以下代码:

name=str(input('Enter a name:'))  
num=int(input('Enter a number:'))  

 def prlines(str, num):  

    for n in range(0, num):

      print(str*(n + 1))

 print(prlines(name, num))

我得到以下实际结果(例如,名称为“ Fred”,数字为“ 4”):

Fred

FredFred

FredFredFred

FredFredFredFred

None

我的问题是如何获得预期的结果并显示以下约束:

  • 最后没有没有

  • 字符串之间有空格

您可以使用:

f'{s} ' * n + f'{s}'

代码

name = input('Enter a name: ')
num = int(input('Enter a number: '))

def prlines(s, num):
    for n in range(num):
        print(f'{s} ' * n + f'{s}') 

prlines(name, num)

几点

  • 不要将变量命名为str

  • 默认情况下,不带return函数返回None ,因此结尾处为None

第一

代码分析

name=str(input('Enter a name:'))  
num=int(input('Enter a number:'))  

def prlines(str, num):  

    for n in range(0, num):

        print(str*(n + 1)) # No spaces added = No spaces on the output

print(prlines(name, num)) # You are printing the output of the above function, which is None since it has no "return"

print(func())是您从中获得None的地方

由于您仅多次打印str,因此不包含空格(python不会知道:)

回答

name=str(input('Enter a name:'))  
num=int(input('Enter a number:'))  

def prlines(str, num):  
    for n in range(0, num):
        print((str+' ')*(n + 1))

prlines(name, num)

忠告

这段代码很粗糙,当有人在第二个输入中未输入int时,您需要考虑错误处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM