Make auto random phrases in same time - python

I need help to make lot of random text to send on twitter but its too long copy paste any one know how i can duplicate (rdmlol == 0): to 500 Thank
Code
if(rdmlol == 0):
api.update_status(status = 'coucou les toxic de ma tl feur ' + str(TweetCount) + ' je ne suis pas un robot lol allez voir feur ')
elif(rdmlol == 1):
api.update_status(status = 'coucou les pierre de ma tl feur ' + str(TweetCount) + ' je ne suis pas un robot lol allez voir feur')```

You're probably looking for a for-loop over a range?
for _ in range(500):
msg = "coucou les toxic de ma tl feur " + str(TweetCount) + " je ne suis pas un robot lol allez voir feur"
api.update_status(status = msg)
If you need to construct a different message each time, the solution depends on what exactly do you need, e.g.
import random
def create_message(tweet_count, words):
# f-strings were introduced in Python 3.6
return f"coucou les {random.choice(words)} de ma tl feur {tweet_count} je ne suis pas un robot lol allez voir feur"
def update_status(api):
words = ["toxic", "pierre"]
for i in range(500):
msg = create_message(i+1, words)
api.update_status(status = msg)
I hope this helps.

Related

How to split sentences without punctuation end in a review?

This the function I used But it does not take into consideration the case when the last sentences does not have punctuation mark.
texte = [ "Là où les vêtements de sport connectés actuels sont axés sur la performance des sportifs, ici, on aura l'occasion pour des amateurs de se rassurer que les mouvements que nous effectuons sont justes. Cela nous évitera bien des mauvaises surprises (douleurs et autres...) au lendemain d'une activité.","Par ailleurs, ce serais bien que l'application ne fonctionne pas uniquement avec les capteurs dans les vêtements, car on ne peut pas les porter tous les jours surtout s'il s'apparente à des vêtements de sport. Ainsi, il serait intéressant que l'application puisse quand même donner des conseils et astuces personnalisés sur nos postures même en dehors des activités sportives avec par exemple des conseils pour les personnes qui travaillent devant un écran toute la journée, ou encore pour ceux qui sont souvent en déplacement en voiture... Etc.", "Le système a l air bien mais cela consiste à avoir des bobines de fils spécial et il y a l air d y avoir beaucoup de petites pièce à sortir pour changer les bobines se qui risque d en perdre! Et je pense que si on met un exemple comme au début de la vidéo avec les 3 fils attachée à une gaine et que l on tir à l autre bout là malette sera trop légère et elle avancera et bloquera les fils ", " A voir les matériaux utilisés pour un prix plus précis"]
alphabet = "([a-z][...])"
alphabets= "([A-Za-z])"
min = "([...][a-z])"
maj = "([...][A-Z])"
punc = "([,':>><<)][A-Z])"
prefixes = "(Mr|St|Mrs|Ms|Dr)[.]"
suffixes = "(Inc|Ltd|Jr|Sr|Co)[.]"
starters = "(M|Mr|Mme|Sr|Dr)"
acronyms = "([A-Z][.][A-Z][.](?:[A-Z][.])?)"
websites = "[.](com|net|org|io|gov)"
digits = "([0-9])"
punct= "([!|)|?|,][<<|>>])"
def split_into_sentences(text):
#text = normalize(text)
text = " " + text + " "
text = text.replace("\n"," ")
text = re.sub(prefixes,"\\1<prd>",text)
text = re.sub(websites,"<prd>\\1",text)
if "Ph.D" in text: text = text.replace("Ph.D.","Ph<prd>D<prd>")
text = re.sub("\s" + alphabets + "[.] "," \\1<prd> ",text)
text = re.sub(acronyms+" "+starters,"\\1<stop> \\2",text)
text = re.sub(alphabets + "[.]" + alphabets + "[.]" + alphabets + "[.]","\\1<prd>\\2<prd>\\3<prd>",text)
text = re.sub(alphabets + "[.]" + alphabets + "[.]","\\1<prd>\\2<prd>",text)
text = re.sub(" "+suffixes+"[.] "+starters," \\1<stop> \\2",text)
text = re.sub(" "+suffixes+"[.]"," \\1<prd>",text)
text = re.sub(" " + alphabets + "[.]"," \\1<prd>",text)
text = re.sub(digits + "[.]" + digits,"\\1<prd>\\2",text)
text = re.sub(digits + "[.]" + digits,"\\1<prd>\\2",text)
text = re.sub(min,"\\1<prd>",text)
text = re.sub(maj,"\\1<stop>",text)
text = re.sub(punc,"\\1<prd>",text)
if "e.g." in text: text = text.replace("e.g.","e<prd>g<prd>")
if "i.e." in text: text = text.replace("i.e.","i<prd>e<prd>")
if "etc.)" in text: text = text.replace("etc.","etc<prd>)")
#if "Etc." in text: text = text.replace("Etc.","Etc<prd>")
if "...]" in text: text = text.replace("...]","<prd><prd><prd>]")
if "...]" in text: text = text.replace("...]","<prd><prd><prd>]")
if "...)'" in text: text = text.replace("...)","<prd><prd><prd>)")
if "?»." in text: text = text.replace("?».","<prd><prd>.")
if "!»." in text: text = text.replace("!».","<prd><prd>.")
if "]»." in text: text = text.replace("]».","<prd><prd>.")
#if "...." in text: text = text.replace("....","<prd><prd><prd><prd>")
if "..." in text: text = text.replace("...","<prd><prd><prd>")
if ".." in text: text = text.replace("..","<prd><prd>")
if "”" in text: text = text.replace(".”","”.")
if "\"" in text: text = text.replace(".\"","\".")
if "!" in text: text = text.replace("!\"","\"!")
if "?" in text: text = text.replace("?\"","\"?")
text = text.replace(".",".<stop>")
text = text.replace("?","?<stop>")
text = text.replace("!","!<stop>")
text = text.replace("...","...<stop>")
text = text.replace("<prd>",".")
# text = text.replace("....","....<stop>") #text = text.replace("…","…<stop>")
sentences = text.split("<stop>")
sentences = sentences[:-1]
sentences = [s.strip() for s in sentences]
#print(sentences)
return sentences
list_clean_text = []
length_token = []
length_Berttoken = []
length_sent = []
list_sent =[]
list_clean = []
print(type(texte))
for i, elt in enumerate(texte):
#print(i, "--", elt)
# split sentences and append len for each
split_sent = split_into_sentences(elt)
print(type(split_sent))
if split_sent == []:
print("List is empty")
list_sent.append(elt)
nb = 1
length_sent.append(nb)
else:
list_sent.append(split_sent)
length_sent.append(len(split_sent))
The above function function work well but it does not take into consideration when a string does not have punctuation or when the last sentence of a string does not have punction. It ignores and just return the sentences where the end was a punctuation.
It's easier with nltk as suggested by #TimBiegeleisen. However, you have to prepare the framework first:
# Python env: pip install nltk
# Anaconda env: conda install nltk
from nltk.tokenize import sent_tokenize
nltk.download('punkt')
tokenizer = nltk.data.load('tokenizers/punkt/french.pickle')
out = tokenizer.tokenize_sents(texte))
Output:
>>> out
[["Là où les vêtements de sport connectés actuels sont axés sur la performance des sportifs, ici, on aura l'occasion pour des amateurs de se rassurer que les mouvements que nous effectuons sont justes.",
"Cela nous évitera bien des mauvaises surprises (douleurs et autres...) au lendemain d'une activité."],
["Par ailleurs, ce serais bien que l'application ne fonctionne pas uniquement avec les capteurs dans les vêtements, car on ne peut pas les porter tous les jours surtout s'il s'apparente à des vêtements de sport.",
"Ainsi, il serait intéressant que l'application puisse quand même donner des conseils et astuces personnalisés sur nos postures même en dehors des activités sportives avec par exemple des conseils pour les personnes qui travaillent devant un écran toute la journée, ou encore pour ceux qui sont souvent en déplacement en voiture...",
'Etc.'],
['Le système a l air bien mais cela consiste à avoir des bobines de fils spécial et il y a l air d y avoir beaucoup de petites pièce à sortir pour changer les bobines se qui risque d en perdre!',
'Et je pense que si on met un exemple comme au début de la vidéo avec les 3 fils attachée à une gaine et que l on tir à l autre bout là malette sera trop légère et elle avancera et bloquera les fils'],
[' A voir les matériaux utilisés pour un prix plus précis']]
Where you set you sentence here:
sentences = text.split("<stop>")
There is no stop case for non-punctuation as you mentioned.
Perhaps a check for stop in the sentence first else fallback to the whole sentence.
in oneline:
sentences = text.split("<stop>") if "<stop>" in text else [text]

Trying to retrieve element after the last occurence of a special token in python

I insert token at the end of each sentence but they are case when the re is not that token what I would like to do is to retrieve the sentence after the last special token if there exist.
text = ["j’imagine une fourchette entre 40 et 65€ , prix auquel je l’achèterai sans doute.<stop> Au vu de la double fonction (2x25€) , de la technicité et de l’ingéniosité je pense que cela serait un prix très correct .<stop> A voir les matériaux utilisés pour un prix plus précis", "ma seule interrogation est « où seront commercialisées les bobines de fils"]
if "<stop>" in text:
print(text)
x =re.search("/[^<stop>]*$/",text)
print(x)
sentences = text.split("<stop>")
else:
print(text)
sentences = text
sentences = sentences[:-1]
sentences = [s.strip() for s in sentences]
I tried this but does not work. Give me None.
You can remove the re.seach part and append the last part of the split to the array. But note that that you have to loop the initial list.
You can add if s at the end of list comprehension to remove empty entries from the list.
text = [
"j’imagine une fourchette entre 40 et 65€ , prix auquel je l’achèterai sans doute.<stop> Au vu de la double fonction (2x25€) , de la technicité et de l’ingéniosité je pense que cela serait un prix très correct .<stop> A voir les matériaux utilisés pour un prix plus précis",
"ma seule interrogation est « où seront commercialisées les bobines de fils", "<stop>"]
sentences = []
for s in text:
sentences.append(s.split("<stop>")[-1])
sentences = [s.strip() for s in sentences if s]
print(sentences)
Output
['A voir les matériaux utilisés pour un prix plus précis',
'ma seule interrogation est « où seront commercialisées les bobines de fils']

I have a problem in python for split part of a text with the line end charater of the sentences

I want to analyse a xml files and one part of my program split the data into sentences but my line end characters are gone … I need them to add annotation with xml tag at the beginning and at the end of my sentences.
For now i have :
import re
line_end_chars = "!", "?", ".",">"
regexPattern = '|'.join(map(re.escape, line_end_chars))
line_list = re.split(regexPattern, texte)
problem
if i run this code with the texte
" Je pense que cela est compliqué de coder. Où puis-je apprendre?"
that's gonna give me :
["Je pense que cela est compliqué de coder",
"Où puis-je apprendre"]
and not what i'm looking for , which is :
["Je pense que cela est compliqué de coder.",
"Où puis-je apprendre?"]
And after that I could do a .replace code to add my xml tag.
One possible solution is using re.sub instead of re.split and then str.splitlines():
import re
line_end_chars = "!", "?", ".",">"
s = "Je pense que cela est compliqué de coder. Où puis-je apprendre?"
print( re.sub('(' + '|'.join(re.escape(ch) for ch in line_end_chars) + ')\s*', r'\1\n', s).splitlines() )
Prints:
['Je pense que cela est compliqué de coder.', 'Où puis-je apprendre?']
Two ways I can think of doing this.
import re
# Method 1)
line_end_chars = "!", "?", ".", ">"
regexPattern = '|'.join(map(re.escape, line_end_chars))
s = "Je pense que cela est compliqué de coder. Où puis-je apprendre?"
linelist = []
for substr, delim in zip(re.split(regexPattern, s), re.findall(regexPattern, s)):
linelist.append(substr+delim)
# Method 2)
line_end_chars = ["!", "?", ".", ">"]
s = "Je pense que cela est compliqué de coder. Où puis-je apprendre?"
linelist = []
temp_str = ""
for c in s:
if c in line_end_chars:
linelist.append(temp_str+c)
temp_str = ""
else:
temp_str += c
Both print
['Je pense que cela est compliqué de coder.', 'Où puis-je apprendre?']

Mini-game with Python 3.2 does not work

from random import randrange
def init_config(m, n):
print("""Crée une configuration pour la configuration initiale""")
config = [[0 for a in range(n)] for b in range(m)]
for k in range(m*n): a, b = k//n, k%n
config[a][b]=k+1
return config
def disp(config, m, n):
print("""Affiche un damier d'une configuration existante avec le format voulu""")
s=t=" +%s\n" % ("---+"*n)
for k in range(n):"%s %s" % (" "if k==0 else "",chr(65+k if k<26 else 71+k)),
for k in range(m*n): i, j=k/n, k%n
s +="%s%s|%03d%s"%(k/n+1 if k%n==0 else ""," "if k%n==0 and k/n<9 else "",config[a][b],"|\n" + t if b == n-1 else "")
return s
def set_treasure (config):
import random
a=random.randrange(0,lin)
b=random.randrange(0,col)
treasure=config[a][b]=0
def main():
print("Entrer les dimensions du damier")
lin=int(input('nombre de lignes : '))
if type (lin)!=int :
print(""" ***ERREUR !***\n le nombre de lignes doit etre un nombre entier""")
lin=int(input('number of lines : '))
elif lin>26:
print(""" ***ERREUR !***\n le nombre de lignes ne doit pas excéder 26 !""")
lin=int(input('nombre de ligne : '))
col=int(input('nombre de colonne: '))
if type (col)!=int :
print(""" ***ERREUR !***\n le nombre de colonnes doit etre un nombre entier""")
col=int(input('nombre de colonne: '))
elif col>38:
print(""" ***ERREUR !***\n le nombre de colonnes ne doit pas excéder 38 !""")
col=int(input('nombre de colonne: '))
n_treasure=int(input('Combien de trésor voulez vous mettre dans le jeux: '))
if type (n_treasure)!=int :
print(""" ***ERREUR !***\n le nombre de trésor doit etre un nombre entier""")
n_treasure=int(input('nombre de trésor que vous avez demander dans le jeux: '))
config=init_config(lin,col)
for k in range (n_treasure):
if set_treasure (config):
board=disp(config, lin, col)
print(board)
for a in range (lin):
for b in range (col):
if config[a][b]==0:
print("Il y a un trésor dans", chr(65+b),a+1)
hello all , I just finished this mini game with python 3.2 but the problem is that the program does not work I do not find the problem, i have TypeError: Win32RawInput() takes at most 2 positional arguments (4 given)
Since you haven't provided any explanation of what the program should actually do and I don't speak French, here's what I think is the problem: In the last line
input("Il y a un trésor dans", chr(65+b),a+1)
you try to display several different types as the input question. But from the context, I think what you really want to do is print these types. Do this by simply typing:
print("Il y a un trésor dans", chr(65+b),a+1)
Perhaps the same goes for fifth-to-last line. It should be
print(board)
if config[a][b]==0:
input("Il y a un trésor dans", chr(65+b),a+1)
So here you are passing four arguments to the built-in function input which takes at most one argument.
input(...)
input([prompt]) -> string
Read a string from standard input. The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled. The prompt string, if given,
is printed without a trailing newline before reading.

Infinite Loop i don't know why ( DichotomySearch )

so i'm working on a program that search a term by dichotomy. It makes an infinite loop and i don't know why but i know where ( in the elif/else ). So here is my code :
def RechercheDichotomique(liste,x):# Algo pour recherche dichotomique
DebutListe=0
FinListe=len(liste)
while (FinListe-DebutListe)>1:# On ne cherche que si la liste a au moins un terme dedans
ElementCentral=int(len(liste[DebutListe:FinListe])/2)# On prend l'element central de la liste
liste[DebutListe:FinListe]
if liste[ElementCentral]==x:# Si l'element central est x correspondent on renvoie True
return (True)
elif liste[ElementCentral]<x:# Si l'element central est inferieur a x alors on prend la moitie superieure
DebutListe=ElementCentral
FinListe=len(liste)
else:# Sinon on prend la partie inferieure de la liste
DebutListe=0
FinListe=int((FinListe)/2)
if FinListe-DebutListe==1 and liste[ElementCentral]==x:# On verifie qu'il ne reste qu'un terme dans la liste et que le seul qui reste est bien x
return (True)
I know there is plenty ways of doing it more easily but i need to keep the List untouched.
Thanks you already guys!
You have a line in your code:
liste[DebutListe:FinListe]
that doesn't do anything, as the result is not stored. You'll need to reassign this if you want it to work:
liste = liste[DebutListe:FinListe]
Here's an implementation of binary search that more strictly adheres to Python's style guide:
def binary_search(collection, x):
while collection:
center = len(collection) / 2
if collection[center] == x:
return True
elif collection[center] < x:
collection = collection[center + 1:]
else:
collection = collection[:center]
else:
return False

Categories

Resources