Если бы кто-то мог помочь мне сделать второстепенный сценарий, я был бы более чем счастлив, например, вывод GGI20-xxxxxxx должен быть GGI20-2562626

0
Admin 9 Апр 2021 в 10:08

7 ответов

Лучший ответ

Вот возможный ответ на вашу проблему

input_string = 'GGI20-xxxxxxx'

import random
def replace_val(input_str):
    str_list = list(input_str)
    str_list = [str(i).replace('x',str(random.randint(0,9))) for i in str_list]
    return ''.join(str_list)

replace_val(input_string)

O / p: 'GGI20-3428855' (может быть другим, так как результат будет случайным)

`

0
Deepak 9 Апр 2021 в 07:30

Просто измените цифры в соответствии с количеством xxxx

import random

string = 'GGI20-xxxxxxx'

random_number = random.randint(1000000, 9999999)

result = string.replace("xxxxxxx", str(random_number))
print(result)
# OUTPUT
# GGI20-6187815
# GGI20-5790829
2
Neeraj 9 Апр 2021 в 07:15

Я полагаю, вам нужно заменить все x в строке случайным числом:

import random

def replaceXs(s):
 result = ''
  for c in s:
    if c == 'x':
      result += str(random.randrange(0, 10))
    else:
      result += c
 return result
 
2
kostis 1101 9 Апр 2021 в 07:18

Почему бы просто не использовать библиотеку random для генерации случайного целого числа с нужным количеством цифр?

import random

def random_GGI20():
    result = f'GGI20-{random.randint(1000000, 9999999)}'
    return result

random_GGI20()
random_GGI20()
random_GGI20()

Примечание: это решение работает, если можно повторно использовать числа. Если GGI20-xxxxxxx результаты должны быть уникальными, это более сложно.

1
rossdrucker9 9 Апр 2021 в 07:13

Вы можете сгенерировать случайное число с помощью random(), преобразовать его в строку, а затем заменить любое количество x в вашем вводе соответствующей подстрокой цифр в строке случайных чисел.

inp = "GGI20-xxxxxxx"
output = re.sub(r'\bx+', lambda x: str(random())[2:len(x.group(0)) + 1], inp)
print(output)  # GGI20-966494
0
Tim Biegeleisen 9 Апр 2021 в 07:16
import random

def random_gen():
    return f"GGI20-{random.randint(1000000, 9999999)}"

print(random_gen())
0
Aditta Das 9 Апр 2021 в 07:18

Изменить: пожалуйста, в следующий раз добавьте весь компонент. Причина, по которой вы сталкиваетесь с этим, заключается в том, что вы поместили {{X0}} в начало функции, поэтому каждый раз, когда она отображает вас, вы игнорируете значение {{X1}}. Вы можете быстро исправить это, поместив это назначение за пределы функционального компонента. Но я бы не рекомендовал такую ​​глобальную переменную. Я бы посоветовал вам рассматривать вопросы как состояние, т.е. {{X2}} и измените состояние, добавив в состояние новый вопрос.

import random

#text type=string
text="GGI20-xxxxxxx"
#convert string into list to perform required operation 
text_list=list(text)

#do a loop till we replace all x with randome number
#note here index method return a error if x not found hence we used try except block

while True:
    try:
        #this index('x') method raise an error when all x are replaced
        text_list[text_list.index('x')]=str(random.randint(0,10))
    except:
        #create temporary string s to save output in it
        s=""
        #convert list to string
        s=s.join(text_list)
        break #break is important for finite looping

print("input text :"+text)
#save output result into main text variable
text=s
print("final output :"+text)

print("done")
0
Omkar Kalantre 9 Апр 2021 в 07:53