как использовать цикл for против цикла while в этом коде - PullRequest
0 голосов
/ 16 декабря 2018

Я изучаю питон через домик на дереве, и я очень зеленый, поэтому, пожалуйста, возьмите это с зерном соли.Я сделал эту работу с циклом while, но думаю, что он будет иметь больше смысла как цикл for, поскольку количество циклов определяется длиной слова.Цель состоит в том, чтобы сделать первую половину любого слова строчной, а вторую половину заглавной.Я уверен, что это супер базовый, но я потратил целую вечность, пытаясь заставить это случиться, но у меня были серьезные проблемы, которые я не мог выяснить из-за проблемы со списком и строкой ... Любые мысли будут очень признательны!Спасибо!Брайан (см. Ниже код)

def sillycase(word1):
    half = int(len(word1)/2)
    word1 = list(word1)
    counter = 0
    while True:
      if counter < half:
        word1[counter] = word1[counter].lower()
      elif counter >= len(word1):
        break
      else:
        word1[counter] = word1[counter].upper()
      counter += 1

    word1 = "".join(word1[:])

    print(word1)
    return word1

1 Ответ

0 голосов
/ 17 декабря 2018

В этом случае вы можете сделать это просто без использования цикла, разрезав первую половину входной строки и преобразовав ее в нижний регистр, а другую половину в верхний:

def sillycase(word1):
    half_len=int(len(word1)/2)
    temp1=word1.lower()[:half_len]
    temp2=word1[half_len::].upper()
    final_string= temp1+temp2
    return final_string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...