Не существует никакой разницы за пределами синтаксиса.
Что касается ваших опасений по поводу второго метода его выполнения:
Рассмотрим:
(function namedfunc () { ... }())
namedfunc
все равно не будет в глобальном масштабе, даже если вы указали имя. То же самое касается анонимных функций. Единственный способ получить его в этой области - назначить ему переменную внутри парнеров.
((namedfunc = function namedfunc () { ... })())
Внешние парсеры не нужны:
(namedfunc = function namedfunc () { ... })()
Но вы не сделали
Так оно и сводится к:
(function namedfunc () { ... })()
И вы можете уменьшить его еще больше: имя не нужно, поскольку оно будет никогда не используется (если ваша функция не рекурсивна .. и даже тогда вы могли бы использовать arguments.callee
)
(function () { ... })()
Так я думаю об этом (может быть неверно, я не читал ECMAScript спецификация все же). Надеюсь, что это поможет.
Ваше решение отлично. Вы не нуждаетесь в трех ветвях, потому что str.upper()
вернет str, если верхняя часть не применима.
С помощью выражений генератора это можно сократить до:
>>> name = 'Mr.Ed'
>>> ''.join(c.lower() if c.isupper() else c.upper() for c in name)
'mR.eD'
Просто используйте метод swapcase ():
name = "Mr.Ed"
name = name.swapcase()
Выход: mR.eD
-> Это всего лишь двухстрочный код.
Объяснение: Метод swapcase () возвращает копию строки, в которой все случайные символы имели свой случай, который был заменен.
Happy Coding!
#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='')
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
Вы можете сделать это с помощью name.swapcase()
. Найдите методы string .