Найти - Пользователи
Полная версия: Код по перестановке слов в строке.
Начало » Центр помощи » Код по перестановке слов в строке.
1 2 3
Masicka
Добрый день. Ребята помогите мне с задачкой. Я нашла код и хочу чтоб он не повторял слова в одной строке,
сказали что нужно 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())
AD0DE412
у вас python 2 так задумано?
Masicka
AD0DE412
у вас python 2 так задумано?
Здравствуйте) Я не совсем поняла по поводу отформатируйте код?) Я вроде вставила нормально и видно хорошо. Да Python 2.7
Masicka
Я читала на форуме одном о random.shuffle, но как к моему скрипту применить вместо random.uniform понятия не имею. Проблема то в том что делая строки в текст а не в программку я обнаружила 2 и даже 3 одинаковых слова, в одной строке….. (((.
AD0DE412
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 просто перемешивает случайным образом эээ это все
Masicka
AD0DE412
Да мне именно нужно случайным образом)
Masicka
 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]:
А что за код Вы написали? Он для чего? Мне нужно как то вписать в мой???
AD0DE412
ок давайте так …
входные данные -> выходные данные
Masicka
AD0DE412
ок давайте так …входные данные -> выходные данные
agiota linda mancha peixe laxante valente vantagem xadrez zebu empatia encaixe irritado
Ну вот 12 слов которые на португальском записаны в txt
Выходные тоже такие должны быть но в вперемешку потому что я учусь таким способом. Печатаю по 2-3 листа А4
AD0DE412
 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

зы блин че то страшное по хорошому взять и переписать
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB