Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Syntax error on line 29
#1
can someone please tell me how to fix this im lost here and not very good with code

import random

from random import randint

import discord

TOKEN = ''

client = discord.Client()



@client.event
async def on_message(message):
    if message.author == client.user:
        return

 
    s_nouns = ["A dude", "My mom", "The king", "Some guy", "A cat with rabies", "A sloth", "Your homie", "This cool guy my gardener met yesterday", "Superman"]
    p_nouns = ["These dudes", "Both of my moms", "All the kings of the world", "Some guys", "All of a cattery's cats", "The multitude of sloths living under your bed", "Your homies", "Like, these, like, all these people", "Supermen"]
    s_verbs = ["eats", "kicks", "gives", "treats", "meets with", "creates", "hacks", "configures", "spies on", "retards", "meows on", "flees from", "tries to automate", "explodes"]
    p_verbs = ["eat", "kick", "give", "treat", "meet with", "create", "hack", "configure", "spy on", "retard", "meow on", "flee from", "try to automate", "explode"]
    infinitives = ["to make a pie.", "for no apparent reason.", "because the sky is green.", "for a disease.", "to be able to make toast explode.", "to know more about archeology."]
 
    while true:
     messageresponse = (s_nouns[randint(0, len(s_nouns))]+" "+p_verbs[randint(0, len(p_verbs))]+" "+infinitives[randint(0, len(infinitives))]

     if message.content == 'hello':
       response=(messageresponse)
       await message.channel.send(response)

@client.event
async def on_ready():
    print('good to go')


		
client.run(TOKEN)        
Reply
#2
The error is in line 26 which has unbalanced parenthesis. About half my syntax errors are not in the line reported. Python kept looking for the missing parenthesis until the if statement forced it to give up.

A few suggestions:
Your indentation should be consistent. 4 spaces for each level is expected.

Lines should not exceed 80 characters in length. You shouldn't have to scroll sideways to see the end of a line.
s_nouns = ["A dude", "My mom", "The king", "Some guy",
           "A cat with rabies", "A sloth", "Your homie",
           "This cool guy my gardener met yesterday", "Superman"]
To randomly chose something from a list use random.choice().
choice(s_nouns) instead of s_nouns[randint(0, len(s_nouns))]
Join strings using join().
' '.join(('a', 'b', 'c')) instead of 'a' + ' ' + 'b' + ' ' + 'c'
Reply
#3
(Feb-27-2021, 04:40 AM)deanhystad Wrote: The error is in line 26 which has unbalanced parenthesis. About half my syntax errors are not in the line reported. Python kept looking for the missing parenthesis until the if statement forced it to give up.

A few suggestions:
Your indentation should be consistent. 4 spaces for each level is expected.

Lines should not exceed 80 characters in length. You shouldn't have to scroll sideways to see the end of a line.
s_nouns = ["A dude", "My mom", "The king", "Some guy",
           "A cat with rabies", "A sloth", "Your homie",
           "This cool guy my gardener met yesterday", "Superman"]
To randomly chose something from a list use random.choice().
choice(s_nouns) instead of s_nouns[randint(0, len(s_nouns))]
Join strings using join().
' '.join(('a', 'b', 'c')) instead of 'a' + ' ' + 'b' + ' ' + 'c'

i did all of that and tried to make the code better:
import random

import discord

TOKEN = ''

client = discord.Client()

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    s_nouns = ["A dude", "My mom", "The king", "Some guy",
           "A cat with rabies", "A sloth", "Your homie",
           "This cool guy my gardener met yesterday", "Superman"]
    s_verbs = ["eats", "kicks", "gives", "treats", "meets with", 
           "creates", "hacks", "configures", "spies on", 
           "retards", "meows on", "flees from", "tries to automate", "explodes"]
    infinitives = ["to make a pie.", "for no apparent reason.", 
           "because the sky is green.", "for a disease.", 
           "to be able to make toast explode.", "to know more about archeology."]
    
    messageresponse = random.choice(s_nouns, s_verbs, infinitives)

    if message.content == 'hello':
       response=(messageresponse)
       await message.channel.send(response)

@client.event
async def on_ready():
 print('we in the mainframe')
		
client.run(TOKEN)        
but now i am getting this error: Ignoring exception in on_message
Traceback (most recent call last):
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "main.py", line 29, in on_message
messageresponse = random.choice(s_nouns,s_verbs,infinitives)
TypeError: choice() takes 2 positional arguments but 4 were given

i have no idea what this means
Reply
#4
Just use interactive interpreter:

+>>> import random
+>>> help(random.choice)
Help on method choice in module random:

choice(seq) method of random.Random instance
    Choose a random element from a non-empty sequence.

+>>> random.choice(range(5))
1
+>>> random.choice(range(5), range(6,9), range(7,10))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: choice() takes 2 positional arguments but 4 were given
In your original code row #30 you had true which should cause error.
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Syntax error for "root = Tk()" dlwaddel 15 1,015 Jan-29-2024, 12:07 AM
Last Post: dlwaddel
Photo SYNTAX ERROR Yannko 3 335 Jan-19-2024, 01:20 PM
Last Post: rob101
  Syntax error while executing the Python code in Linux DivAsh 8 1,454 Jul-19-2023, 06:27 PM
Last Post: Lahearle
  Code is returning the incorrect values. syntax error 007sonic 6 1,137 Jun-19-2023, 03:35 AM
Last Post: 007sonic
  File "<string>", line 19, in <module> error is related to what? Frankduc 9 12,395 Mar-09-2023, 07:22 AM
Last Post: LocklearSusan
  syntax error question - string mgallotti 5 1,251 Feb-03-2023, 05:10 PM
Last Post: mgallotti
  Syntax error? I don't see it KenHorse 4 1,194 Jan-15-2023, 07:49 PM
Last Post: Gribouillis
  Syntax error tibbj001 2 848 Dec-05-2022, 06:38 PM
Last Post: deanhystad
  Python-for-Android:p4a: syntax error in main.py while compiling apk jttolleson 2 1,778 Sep-17-2022, 04:09 AM
Last Post: jttolleson
  Pandas - error when running Pycharm, but works on cmd line zxcv101 1 1,321 Jun-18-2022, 01:09 PM
Last Post: snippsat

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020