同时打印x次 - Python

时间:2016-02-09 16:34:34

标签: python list printing append

我已经完成了编写程序的任务,该程序可以打印' 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

在此之后我有点迷茫。 任何有关此任务的指导都将非常感谢! 谢谢!

3 个答案:

答案 0 :(得分:4)

在python中你可以简单地做

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

答案 1 :(得分:0)

试试这个:

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

你也可以使用list-comprehension:

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))

答案 2 :(得分:0)

这样可以解决问题:

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

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