根据位置多次打印字符串元素

时间:2018-03-22 18:57:53

标签: python python-3.x

我正在尝试单独打印每个元素,这很好,但也可以根据位置重复每个元素,例如。 “abcd”= A-Bb-Ccc-Dddd等

所以我的问题是让print语句根据它们在字符串中的位置打印x次。我尝试了使用len和range的几个组合,但我经常遇到错误,因为我使用字符串而不是整数。

我应该在这里使用len和range吗?如果你们没有发布完成的代码,我更愿意,基本上如何解决这个特定问题(如果可能的话),所以我仍然可以自己搞清楚。

user_string = input()

def accum(s):
    for letter in s:
        pos = s[0]
        print(letter.title())
        pos = s[0 + 1]

accum(user_string)

2 个答案:

答案 0 :(得分:1)

您可以枚举iterables(列表,字符串,范围,dictkeys,...) - 它提供索引和值:

(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
(4, 'e')
(5, 'f')

输出:

print("Bla","blubb", sep=" --->", end=" Kawumm\n")

您可以使用它多次打印。 print命令有两个可选参数:

Bla --->blubb Kawumm

输出:

end=""

指定输出之间和输出结尾处打印的内容 - 您可以指定user_string = input() def accum(s): t = [] # list to store stuff into for count, letter in enumerate(s): total = letter.upper() + letter * (count) # 1st as Upper, rest as is t.append(total) # add to list print(*t, sep="-") # the * "unpacks" the list into its parts accum(user_string) - 这样您就可以继续在同一行上打印。

Doku:

编辑:

print( [1,2,3,4,5], sep=" +++ ")  # its just 1 value to print, no sep needed
print(*[1,2,3,4,5], sep=" +++ ")  # 5 values to print, sep needed 

启封:

[1, 2, 3, 4, 5] 
1 +++ 2 +++ 3 +++ 4 +++ 5

输出:

materialize.js (0.100.2)

答案 1 :(得分:0)

你可以尝试让一个计数器在循环遍历字符串时增加1。然后,在您当前拥有的循环内,使用另一个for循环来循环计数器的大小。如果您希望打印出首字母大写的第一个字母,那么您需要将其与破折号一起考虑。