Automate the boring stuff with Python: Comma Code

前端 未结 29 953
深忆病人
深忆病人 2021-02-03 16:17

Currently working my way through this beginners book and have completed one of the practice projects \'Comma Code\' which asks the user to construct a program which:

相关标签:
29条回答
  • 2021-02-03 16:35

    This is what I did, IMO it is more intuitive...

    spam = ['apples','bananas','tofu','cats']
    
    def ipso(x):
        print("'" , end="")
        def run (x):
    
        for i in range(len(x)):
            print(x[i]+ "" , end=',')
    
    
        run(x)
        print("'")
    
    ipso(spam)
    
    0 讨论(0)
  • 2021-02-03 16:36

    I tried this, hope this is what you are looking for :-

    spam= ['apples', 'bananas', 'tofu', 'cats']
    
    def list_thing(list):
    
    #creating a string then splitting it as list with two items, second being last word
        new_string=', '.join(list).rsplit(',', 1)    
    
    #Using the same method used above to recreate string by replacing the separator.
    
        new_string=' and'.join(new_string)
        return new_string
    
    print(list_thing(spam))
    
    0 讨论(0)
  • 2021-02-03 16:36
    listA = [ 'apples', 'bananas', 'tofu' ]
    def commaCode(listA):
        s = ''
        for items in listA:
            if items == listA [0]:
                s = listA[0]
            elif items == listA[-1]:
                s += ', and ' + items
            else:
                s += ', ' + items
        return s
    print(commaCode(listA))
    
    0 讨论(0)
  • 2021-02-03 16:39

    As the function must work for all list values passed to it, including integers, therefore it should be able to return/print all values i.e. as str(). My fully working code looks like this:

    spam = ['apples', 'bananas', 'tofu', 'cats', 2]
    
    def commacode(words):
    
        x = len(words)
    
        if x == 1:
            print(str(words[0]))
        else:
            for i in range(x - 1):
                print((str(words[i]) + ','), end=' ')
            print(('and ' + str(words[-1])))
    
    commacode(spam)
    
    0 讨论(0)
  • 2021-02-03 16:40

    Here's my solution. Once I found the join method and how it worked, the rest followed.

    spam = ['apples', 'bananas', 'tofu', 'cats']
    
    def commas(h):
        s = ', '
        print(s.join(spam[0:len(spam)-1]) + s + 'and ' + spam[len(spam)-1])
    
    commas(spam)
    
    0 讨论(0)
  • 2021-02-03 16:41

    I came up with this solution

    #This is the list which needs to be converted to String
    spam = ['apples', 'bananas', 'tofu', 'cats']
    
    #This is the empty string in which we will append
    s = ""
    
    
    def list_to_string():
        global spam,s
        for x in range(len(spam)):
            if s == "":
                s += str(spam[x])
            elif x == (len(spam)-1):
                s += " and " + str(spam[x])
            else:
                s += ", " + str(spam[x])
        return s
    
    a = list_to_string()
    print(a)
    
    0 讨论(0)
提交回复
热议问题