>  기사  >  백엔드 개발  >  Python의 하위 및 상위 함수 사용에 대한 자세한 설명

Python의 하위 및 상위 함수 사용에 대한 자세한 설명

Y2J
Y2J원래의
2017-05-18 14:55:1513056검색

오늘 작은 문제가 발생했습니다. 목록에 있는 불규칙한 영어 이름을 [첫 글자는 대문자, 나머지는 소문자]로 변환하는 프로그램을 작성해야 합니다.

초기 아이디어는 함수를 작성하는 것이었습니다. 각 이름을 대문자로 변환하려면 이름 문자열 [str]을 처리하려면 맵을 사용하여 일괄 처리하는 방법

대체적인 생각은 맞지만 세부 사항을 처리하는 데 몇 가지 문제가 있습니다.

처음에는

[python] view plain copy
def change (name)  
    result = name[0].upper()  
    for a in name[1:len(name)]:  
        result = result + a.lower()

와 같이 이름 처리 기능을 작성했는데, 실행하면

[python] view plain copy
E:\PythonFile>python practice.py  
  File "practice.py", line 6  
    for a in name(1:len(name)-1) :  
                   ^  
SyntaxError: invalid syntax  
  
E:\PythonFile>python practice.py  
Traceback (most recent call last):  
  File "practice.py", line 11, in <module>  
    name_li = map (change, name_list)  
  File "practice.py", line 6, in change  
    for a in name(1,len(name)-1) :  
TypeError: &#39;str&#39; object is not callable  
  
E:\PythonFile>python practice.py  
Traceback (most recent call last):  
  File "practice.py", line 9, in <module>  
    name_li = map (change, name_list)  
  File "practice.py", line 5, in change  
    name[0] = name[0].upper()  
TypeError: &#39;str&#39; object does not support item assignment  
  
E:\PythonFile>python practice.py  
Traceback (most recent call last):  
  File "practice.py", line 10, in <module>  
    name_li = map (change, name_list)  
  File "practice.py", line 6, in change  
    name[0] = tmp  
TypeError: &#39;str&#39; object does not support item assignment  
  
E:\PythonFile>python  
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win  
32  
Type "help", "copyright", "credits" or "license" for more information.  
>>> l = &#39;zxcv&#39;  
>>> print l[0]  
z  
>>> print l[0].upper  
<built-in method upper of str object at 0x02148740>  
>>> print l[0].upper()  
Z  
>>> z  
Traceback (most recent call last):  
  File "<stdin>", line 1, in <module>  
NameError: name &#39;z&#39; is not defined  
>>> ^Z  
  
  
E:\PythonFile>python practice.py  
Traceback (most recent call last):  
  File "practice.py", line 9, in <module>  
    name_li = map (change, name_list)  
  File "practice.py", line 6, in change  
    name[0] = tmp  
TypeError: &#39;str&#39; object does not support item assignment  
  
E:\PythonFile>python practice.py  
Traceback (most recent call last):  
  File "practice.py", line 13, in <module>  
    name_li = map (change, name_list)  
  File "practice.py", line 5, in change  
    tmp = chr(name[0])  
TypeError: an integer is required

오류가 발생해서 몇 번 시도해 보았는데요. 일반적인 의미는 이 방법으로는 문자열 처리를 할 수 없다는 것이므로, upper()와 lower()의 사용법을 확인해 본 결과 이 ​​두 함수가 str에 직접 작용하는 것으로 확인되었으므로 걱정할 필요가 없습니다.

수정 후:

[python] view plain copy
# practice.py  
# Change the first char in every name from lower type to upper type  
  
def change (name):  
    result =  name[0:1].upper()+name[1:len(name)].lower()  
    return result  
  
name_list = [&#39;kzd&#39;,&#39;ysy&#39;,&#39;kcw&#39;,&#39;scr&#39;,&#39;ky&#39;]  
name_li = map (change, name_list)  
print name_l

실행 결과:

[python] view plain copy
E:\PythonFile>python practice.py  
[&#39;Kzd&#39;, &#39;Ysy&#39;, &#39;Kcw&#39;, &#39;Scr&#39;, &#39;Ky&#39;]

문자열에 요소를 할당하고 교체하려고 했으나 허용되지 않는 오류입니다.

[관련 추천]

1. Python 무료 동영상 튜토리얼

Upper 기본 소개

3. 파이썬에서 대문자와 소문자를 변환하는 방법

위 내용은 Python의 하위 및 상위 함수 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.