【问题标题】:Simultaneously printing x number of times - Python同时打印x次 - Python
【发布时间】:2016-02-09 16:34:33
【问题描述】:

我的任务是编写一个打印 'y' 和 'n' 指定次数的程序。我们必须使用提供的起始代码;

def my_string(size):
    #Code here...
    return out_string

print(my_string(3))  #Would print 'yny'
print(my_string(8))  #Would print 'ynynynyn'

但我不知道从哪里开始。

我曾考虑通过添加到运行总数进行循环,并且在满足该数字之前,它将创建一个字符列表,然后将其打印出来,但这似乎是一个问题,因为我无法弄清楚找出如何获得所需的字符串长度.. :-L

def my_string(size):
    length = size
    times = 0
    current_print = [ ] 
    while times != length:
        current_print.append("y")
        times = times + 1
        current_print.append("n")
        times = times + 1

    return out_string

在这之后我有点迷路了。 任何有关此任务的指导将不胜感激! 谢谢!

【问题讨论】:

    标签: python list printing append


    【解决方案1】:

    在python中你可以简单地做

    def my_string(size):
        out_string = ('yn' * size)[:size]
        return out_string
    

    【讨论】:

      【解决方案2】:

      这样就可以了:

      def my_string(size):
          if size % 2 == 0:
              return 'yn' * (size / 2)
          else:
              return 'yn' * (size / 2) + 'y'
      

      如果 size 是偶数,我们打印 'yn' size/2 次。 如果 size 是奇数,我们打印 'yn' size/2 次加上另一个 'y'。

      【讨论】:

        【解决方案3】:

        试试这个:

        def my_string(size):
            times = 0
            current_print = ""
            while times < length:
                current_print += ("y", "n")[times % 2]
        

        你也可以使用列表理解:

        def my_string(size):
            return "".join(("y", "n")[x % 2] for x in range(size))
        

        另一种选择:

        def my_string(size):
            return ("yn" * (size // 2)) + ("y" * (size % 2))
        

        【讨论】:

        • 我不确定你是否意识到,但你可以在字符串上使用*。例如,"yn" * 2 将返回 "ynyn"
        • 我确实意识到了这一点,但我没有选择使用它。不过,我想我会添加另一个使用它的选项。
        猜你喜欢
        • 2014-12-26
        • 2014-03-17
        • 2021-04-03
        • 1970-01-01
        • 1970-01-01
        • 2012-10-06
        • 2019-05-15
        • 1970-01-01
        • 2015-01-03
        相关资源
        最近更新 更多