Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 19, 2021 18:32:43

Masicka
Зарегистрирован: 2021-02-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

Добрый день. Ребята помогите мне с задачкой. Я нашла код и хочу чтоб он не повторял слова в одной строке,
сказали что нужно random.shuffle вместо random.uniform. Что мне сделать? На что поменять и где именно подскажите. Он выводил мне в программу слова и брал из файла слова. Я в этом ни бум бум…

 #!/usr/bin/env python
# encoding: utf-8
import sys
import getopt
import random
#sys.stdout = open('output.txt','wt')
CODEWORDS = open('wordlist.txt', 'r').readlines()
outputtxt = open('12words.txt', 'w')
class Usage(Exception):
    def __init__(self, msg):
        self.msg = msg
def generate(prefix=False, number=12):
    while number > 0:        
        if prefix == 'TRUE':
           print ("Not Supported.")
           # word1 = PREFIXES[int(random.uniform(0,len(PREFIXES)))]
        elif prefix:
            word1 = prefix
        else:
            word1 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word2 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word3 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word4 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word5 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word6 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word7 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word8 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word9 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word10 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word11 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
            word12 = CODEWORDS[int(random.uniform(0,len(CODEWORDS)))]
        print "%s %s %s %s %s %s %s %s %s %s %s %s" % (word1.rstrip(), word2.rstrip(), word3.rstrip(), word4.rstrip(), word5.rstrip(), word6.rstrip(), word7.rstrip(), word8.rstrip(), word9.rstrip(), word10.rstrip(), word11.rstrip(), word12.rstrip())
        
        number -= 1
    
def main(argv=None):
    
    number = 12
    prefix = False
    
    if argv is None:
        argv = sys.argv
    try:
        try:
            opts, args = getopt.getopt(argv[1:], "hn:p:i:vw:", ["help", "number=", "prefix=", "wordlist="])
        except getopt.error, msg:
            raise Usage(msg)
    
        # option processing
        for option, value in opts:
            if option == "-v":
                verbose = True
            if option in ("-h", "--help"):
                raise Usage(help_message)
            if option in ("-n", "--number"):
                number = int(value)
            if option in ("-w", "--wordlist"):
                global CODEWORDS
                print "Importing: %s" % value
                CODEWORDS = open(value, 'r').readlines()
            if option in ("-p", "--prefixe"):
                print value
                if (value):
                    prefix = value
                else:
                    prefix = 'TRUE'
    
        generate(prefix, number)
    
    except Usage, err:
        print >> sys.stderr, sys.argv[0].split("/")[-1] + ": " + str(err.msg)
        print >> sys.stderr, "\t for help use --help"
        return 2
if __name__ == "__main__":
    sys.exit(main())

Отредактировано Masicka (Фев. 19, 2021 18:35:10)

Офлайн

#2 Фев. 19, 2021 19:00:11

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

у вас python 2 так задумано?



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#3 Фев. 19, 2021 19:22:42

Masicka
Зарегистрирован: 2021-02-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

AD0DE412
у вас python 2 так задумано?
Здравствуйте) Я не совсем поняла по поводу отформатируйте код?) Я вроде вставила нормально и видно хорошо. Да Python 2.7

Офлайн

#4 Фев. 19, 2021 19:35:28

Masicka
Зарегистрирован: 2021-02-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

Я читала на форуме одном о random.shuffle, но как к моему скрипту применить вместо random.uniform понятия не имею. Проблема то в том что делая строки в текст а не в программку я обнаружила 2 и даже 3 одинаковых слова, в одной строке….. (((.

Офлайн

#5 Фев. 19, 2021 19:52:52

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

Masicka
Я не совсем поняла по поводу отформатируйте код?
просто часто постят непонятное пришлось сделать вот такую подпись
по поводу исключить повторения https://python-scripts.com/sets
 In [1]: a = [1, 2, 3, 3, 4]
In [2]: print a
[1, 2, 3, 3, 4]
In [3]: b = set(a)
In [4]: print b
set([1, 2, 3, 4])
In [5]:
random.shuffle просто перемешивает случайным образом эээ это все



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Фев. 19, 2021 19:53:42)

Офлайн

#6 Фев. 19, 2021 19:54:45

Masicka
Зарегистрирован: 2021-02-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

AD0DE412
Да мне именно нужно случайным образом)

Офлайн

#7 Фев. 19, 2021 19:55:56

Masicka
Зарегистрирован: 2021-02-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

 In [1]: a = [1, 2, 3, 3, 4]
In [2]: print a
[1, 2, 3, 3, 4]
In [3]: b = set(a)
In [4]: print b
set([1, 2, 3, 4])
In [5]:
А что за код Вы написали? Он для чего? Мне нужно как то вписать в мой???

Отредактировано Masicka (Фев. 19, 2021 19:56:43)

Офлайн

#8 Фев. 19, 2021 20:02:59

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

ок давайте так …
входные данные -> выходные данные



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#9 Фев. 19, 2021 20:08:07

Masicka
Зарегистрирован: 2021-02-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

AD0DE412
ок давайте так …входные данные -> выходные данные
agiota linda mancha peixe laxante valente vantagem xadrez zebu empatia encaixe irritado
Ну вот 12 слов которые на португальском записаны в txt
Выходные тоже такие должны быть но в вперемешку потому что я учусь таким способом. Печатаю по 2-3 листа А4

Отредактировано Masicka (Фев. 19, 2021 20:10:14)

Офлайн

#10 Фев. 19, 2021 20:39:15

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Код по перестановке слов в строке.

 import sys
import getopt
import random
#sys.stdout = open('output.txt','wt')
CODEWORDS = open('wordlist.txt', 'r').readlines()
outputtxt = open('12words.txt', 'w')
class Usage(Exception):
    def __init__(self, msg):
        self.msg = msg
def generate(prefix=False, number=12):
    while number > 0:        
        if prefix == 'TRUE':
           print ("Not Supported.")
           # word1 = PREFIXES[int(random.uniform(0,len(PREFIXES)))]
        elif prefix:
            word1 = prefix
        else:
            words = CODEWORDS[0].split(" ")[:12]
            random.shuffle(words)
            words = " ".join(words)
        print words
        
        number -= 1
    
def main(argv=None):
    
    number = 12
    prefix = False
    
    if argv is None:
        argv = sys.argv
    try:
        try:
            opts, args = getopt.getopt(argv[1:], "hn:p:i:vw:", ["help", "number=", "prefix=", "wordlist="])
        except getopt.error, msg:
            raise Usage(msg)
    
        # option processing
        for option, value in opts:
            if option == "-v":
                verbose = True
            if option in ("-h", "--help"):
                raise Usage(help_message)
            if option in ("-n", "--number"):
                number = int(value)
            if option in ("-w", "--wordlist"):
                global CODEWORDS
                print "Importing: %s" % value
                CODEWORDS = open(value, 'r').readlines()
            if option in ("-p", "--prefixe"):
                print value
                if (value):
                    prefix = value
                else:
                    prefix = 'TRUE'
    
        generate(prefix, number)
    
    except Usage, err:
        print >> sys.stderr, sys.argv[0].split("/")[-1] + ": " + str(err.msg)
        print >> sys.stderr, "\t for help use --help"
        return 2
if __name__ == "__main__":
    sys.exit(main())

 empatia valente vantagem xadrez linda peixe irritado mancha zebu encaixe agiota laxante
laxante encaixe mancha irritado zebu peixe agiota empatia valente vantagem xadrez linda
laxante linda mancha vantagem zebu empatia agiota encaixe xadrez irritado valente peixe
valente laxante xadrez zebu mancha peixe linda vantagem encaixe irritado agiota empatia
valente vantagem xadrez linda zebu irritado agiota laxante encaixe peixe mancha empatia
xadrez mancha peixe linda zebu irritado laxante encaixe empatia vantagem valente agiota
zebu irritado encaixe valente laxante xadrez agiota vantagem linda mancha empatia peixe
mancha vantagem empatia zebu agiota xadrez encaixe linda valente laxante irritado peixe
valente encaixe linda laxante irritado xadrez zebu mancha agiota vantagem empatia peixe
agiota mancha empatia linda laxante irritado valente vantagem zebu xadrez peixe encaixe
laxante peixe agiota mancha xadrez vantagem irritado linda valente empatia zebu encaixe
empatia agiota valente laxante vantagem peixe irritado mancha encaixe zebu linda xadrez

зы блин че то страшное по хорошому взять и переписать



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Фев. 19, 2021 20:54:41)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version