Разделитель строк Python - PullRequest
0 голосов
/ 22 июня 2019

Я пишу программу для объединения строки из списка и чисел, но я не могу избавиться от кавычек вокруг строки. Мне нужна точка с запятой после строки, координаты y и радиуса, но мне не нужны запятые после точки с запятой. Это возможно? Я ожидаю, что формат будет следующим:

Circle; 80, 72; 15; 32, 208, 86

Я пробовал одну точку с запятой и удаляю запятую, но она не работает

from random import randrange
from random import choice


def randomShape():
    x = randrange (0,400)
    y = randrange (0,400)
    radius = randrange (0,100)
    red = randrange (192, 208)
    blue =randrange(100,140)
    green =randrange(150,175)
    shape = ['square;' , 'rectangle;']
    randomShape = choice (shape)
    JoinList =(randomShape,x,y,radius,red,blue,green)
    print(JoinList)

def main():

  randomShape()


main()

Ответы [ 3 ]

0 голосов
/ 22 июня 2019

Если ваша проблема только в print , как в указанном формате, то замените оператор print следующим образом:

print(randomShape,x,",",y,";",radius,";",red,",",blue,",",green)

Output :

rectangle; 219 , 300 ; 58 ; 207 , 114 , 172

Это должно решить.

0 голосов
/ 23 июня 2019

Определите переменные:

In [83]: randomShape,x,y,radius,red,blue,green = 'Circle', 80, 72, 15, 32, 208, 86                   

Отформатируйте строку с классическим стилем% Python:

In [84]: '%s; %d, %d; %d; %d, %d, %d'%(randomShape,x,y,radius,red,blue,green)                        
Out[84]: 'Circle; 80, 72; 15; 32, 208, 86'

, и если мы поместим эту строку в print:

In [85]: print(_)       
Circle; 80, 72; 15; 32, 208, 86

Или с более новым стилем format:

In [88]: '{}; {}, {}; {}; {}, {}, {}'.format(randomShape,x,y,radius,red,blue,green)                  
Out[88]: 'Circle; 80, 72; 15; 32, 208, 86'

Более новый вариант строки 'f' уже упоминался:

In [90]: f'{randomShape}; {x}, {y}; {radius}; {red}, {blue}, {green}'                                
Out[90]: 'Circle; 80, 72; 15; 32, 208, 86'
0 голосов
/ 22 июня 2019

Вы сказали, что хотите создать строку, но ваш вывод - список. Вы можете достичь этого результата, просто используя строковый шаблон с заполнителями для ваших переменных. Для этого вы можете использовать f-strings . Я поместил этот код в отдельную функцию, чтобы избавиться от беспорядка:

def join_shape_data(shape, x, y, radius, red, blue, green):
    return f"{shape} {x}, {y}; {radius}; {red}, {blue}, {green}"

Таким образом, вы можете вызвать его внутри функции randomShape (), и это сгенерирует то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...