Преобразование символов нижнего регистра в столицы и столицы в нижний регистр [дубликат]

Не существует никакой разницы за пределами синтаксиса.

Что касается ваших опасений по поводу второго метода его выполнения:

Рассмотрим:

(function namedfunc () { ... }())

namedfunc все равно не будет в глобальном масштабе, даже если вы указали имя. То же самое касается анонимных функций. Единственный способ получить его в этой области - назначить ему переменную внутри парнеров.

((namedfunc = function namedfunc () { ... })())

Внешние парсеры не нужны:

(namedfunc = function namedfunc () { ... })()

Но вы не сделали

Так оно и сводится к:

(function namedfunc () { ... })()

И вы можете уменьшить его еще больше: имя не нужно, поскольку оно будет никогда не используется (если ваша функция не рекурсивна .. и даже тогда вы могли бы использовать arguments.callee)

(function () { ... })()

Так я думаю об этом (может быть неверно, я не читал ECMAScript спецификация все же). Надеюсь, что это поможет.

10
задан wenzul 30 October 2014 в 16:30
поделиться

6 ответов

Ваше решение отлично. Вы не нуждаетесь в трех ветвях, потому что str.upper() вернет str, если верхняя часть не применима.

С помощью выражений генератора это можно сократить до:

>>> name = 'Mr.Ed'
>>> ''.join(c.lower() if c.isupper() else c.upper() for c in name)
'mR.eD'
13
ответ дан ch3ka 23 August 2018 в 00:10
поделиться

Просто используйте метод swapcase ():

name = "Mr.Ed"
name = name.swapcase()

Выход: mR.eD

-> Это всего лишь двухстрочный код.

Объяснение: Метод swapcase () возвращает копию строки, в которой все случайные символы имели свой случай, который был заменен.

Happy Coding!

3
ответ дан Jorvis 23 August 2018 в 00:10
поделиться
#the following program is for toggle case
name=input()
for i in name:
    if i.isupper():
        print( i.lower(),sep='',end='')
    else:
        print( i.upper(),sep='',end='')
0
ответ дан Pang 23 August 2018 в 00:10
поделиться
  • 1
    Качество этого ответа действительно довольно низкое. Очевидно, что форматирование может быть улучшено. Кроме того, для того, чтобы ответ был полезным, нужно прокомментировать и объяснить. Наконец, я не вижу разницы с другими ответами. – Tom de Geus 27 June 2018 в 15:28

https://github.com/suryashekhawat/pythonExamples/blob/master/string_toggle.py

    def toggle(mystr):
        arr = []
        for char in mystr:
            if char.upper() != char:
                char=char.upper()
                arr.append(char)
            else:
                char=char.lower()
                arr.append(char)
        return ''.join(map(str,arr))
    user_input = raw_input()
    output = toggle(user_input)
    print output
0
ответ дан Surya Pratap 23 August 2018 в 00:10
поделиться
  • 1
    Добавьте некоторое объяснение с ответом, как этот ответ помогает OP в устранении текущей проблемы – ρяσѕρєя K 12 November 2016 в 06:06

Вы можете сделать это с помощью name.swapcase(). Найдите методы string .

83
ответ дан wenzul 23 August 2018 в 00:10
поделиться
  • 1
    Почему же это не принятый ответ? – Juan Cortés 21 September 2015 в 11:10
  • 2
    @ JuanCortés Поскольку accepter хотел улучшить их код . Кстати, этот случай иллюстрирует, почему stackoverflow.com и codereview.stackexchange.com - это разные проекты. – Kirill Bulygin 4 August 2017 в 10:38
1
ответ дан Prabal Tiwari 5 November 2018 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: