Форум сайта python.su
Добрый день. Ребята помогите мне с задачкой. Я нашла код и хочу чтоб он не повторял слова в одной строке,
сказали что нужно 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)
Офлайн
у вас python 2 так задумано?
Офлайн
AD0DE412Здравствуйте) Я не совсем поняла по поводу отформатируйте код?) Я вроде вставила нормально и видно хорошо. Да Python 2.7
у вас python 2 так задумано?
Офлайн
Я читала на форуме одном о random.shuffle, но как к моему скрипту применить вместо random.uniform понятия не имею. Проблема то в том что делая строки в текст а не в программку я обнаружила 2 и даже 3 одинаковых слова, в одной строке….. (((.
Офлайн
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 (Фев. 19, 2021 19:53:42)
Офлайн
AD0DE412Да мне именно нужно случайным образом)
Офлайн
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)
Офлайн
ок давайте так …
входные данные -> выходные данные
Офлайн
AD0DE412agiota linda mancha peixe laxante valente vantagem xadrez zebu empatia encaixe irritado
ок давайте так …входные данные -> выходные данные
Отредактировано Masicka (Фев. 19, 2021 20:10:14)
Офлайн
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
Отредактировано AD0DE412 (Фев. 19, 2021 20:54:41)
Офлайн