Skip to content
Advertisement

replace a symbol in the same line of multistring

I am doing a python project, its a review maker kind using a sample string and replacing the symbol in the same line of the multistring then printing it with (check mark) next to the same text in the string as user input , I have a problem in replacing a certain symbol (☑) with the same line of string which equal to user input. Here is a code example to get the idea:

 import string
 import re

    #this is a review  maker with check boxes
    Graphics = """
    ☐ You forget what reality is,
    ☐ Beautiful,
    ☐ Good,
    ☐ Decent,
    ☐ Bad,
    ☐ Don't look too long at it,
    ☐ MS-DOS
    """
    def findAndReplace(Graphics):
      find_symbol = re.search(symbol = "☐")
      new_symbol =re.replace(symbol1 = "☑")
    return new_symbol

     # ask question to the user and replace symbol to same answer of the user.

    print = "Choose an answer each question to write the review"
    # the strings down is equal to the Graphics strings
    print = " Beautiful - Good - Decent - Bad"

      #control flow

    user_input1 = input("what do you think about Graphics? ")
    if  user_input1 in Graphics:
       findAndReplace(Graphics)
    print(Graphics)
    else:
       print("we still have errors -")

Advertisement

Answer

You might be looking for something on the lines of :

# -*- coding: utf-8 -*-


import string
import re

#this is a review  maker with check boxes
Graphics = """
☐ You forget what reality is,
☐ Beautiful,
☐ Good,
☐ Decent,
☐ Bad,
☐ Don't look too long at it,
☐ MS-DOS
"""
def findAndReplace(line, line_num):
   replacement_string = re.sub("☐", "☑", line)
   mylist[line_num] = replacement_string
   return "n".join(mylist)

# ask question to the user and replace symbol to same answer of the user.

print( "Choose an answer each question to write the review")
# the strings down is equal to the Graphics strings
print(" Beautiful - Good - Decent - Bad")

#control flow

mylist = Graphics.split('n')
user_input1 = input("what do you think about Graphics? ")
for i, line in enumerate(mylist):
   try:
       if  user_input1 in line:
           Graphics = findAndReplace(line, i)
           print(Graphics)
   except:
       print("we still have errors -")

Another perhaps better method leveraging regular expressions is:

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import string
import re

#this is a review  maker with check boxes
Graphics = """
☐ You forget what reality is,
☐ Beautiful,
☐ Good,
☐ Decent,
☐ Bad,
☐ Don't look too long at it,
☐ MS-DOS
"""

# ask question to the user and replace symbol to same answer of the user.

print( "Choose an answer each question to write the review")
# the strings down is equal to the Graphics strings
print(" Beautiful - Good - Decent - Bad")


#control flow

user_input1 = input("what do you think about Graphics? ")

try:
    result = re.search(user_input1, Graphics)

    first = Graphics[:result.start()]
    last = Graphics[result.start():]

    start = first.rfind("☐")

    new_string = first[:start] + first[start:].replace("☐", "☑")

    Graphics = new_string + last

    print(Graphics)
except:
    print("we still have errors -")
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement