> Ah, I see. Sorry, I misread your requirements. Something like this should > work. > > #!/usr/bin/env python > > MAX_LENGTH = 140 > > > class TweetTooLongError(Exception): > """ > Raised when a user would be too long to add to the tweet, even > alone. > """ > pass > > > def generate_tweets(message, users): > """ > Generate tweets based around a message, with users > appended to each tweet. > > :param message: the base message > :param users: a group of users to append > :returns: tweets based around the message to the users > """ > > add = "" > longest_in_list = " @" + max(users, key=len) > > if len(longest_in_list) + len(message) > MAX_LENGTH: > raise TweetTooLongError( > "At least one user would make the tweet too long." > ) > > while users: > new_message = message > while len(new_message) + len(add) <= MAX_LENGTH: > new_message += add > if not users: > break > add = " @" + users.pop(0) > yield new_message > > > if __name__ == "__main__": > users = [ > "saad", "asad", "sherry", "danny", "ali", "hasan", "adil", > "yousaf", "maria", "bilal", "owais", > ] > message = raw_input("Enter string: ") > print("\n".join(generate_tweets(message, users))) >
Thank you for your response. This code has a bug. If there is one user left in the user list, it doesn't print a tweet with just that one user added. For example use this string: "These are my friends living in the same city as i am. I have known them for years. They are good people in general. They are:"...you will see that "owais" is still in the list and is not added to a new tweet and printed. Saad
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor