2014-11-11 3 views
0

두 개의 문자열을 인수로 사용하여 정확히 동일한 문자를 포함하는지 여부를 true 또는 false로 반환하는 함수를 작성했습니다. 이것은 내 코드입니다 :파이썬에서 함수를 호출하는 프로 시저를 정의하는 방법 3

def anagram(str1,str2): 
    str1 = sorted(str1) 
    str2 = sorted(str2) 
    if str1 == str2: 
     print("True") 
    else: 
     print("False") 

내가 지금 적어도 세 가지 진실과 거짓 케이스를 사용하여 다른 문자열 인수를 사용하여 철자 바꾸기 함수를 호출하는) (절차라고 test_anagram를 정의 할 필요가있다. 각 경우에 대해 문자열과 결과를 출력해야합니다.

나는 이것을 달성하는 방법에 대해 잘 모르겠다. 누군가 나를 도와 줄 수 있을까?

+1

먼저, 파이썬에서는, "절차"와 "기능은"같은 일이다. 어떤 사람들은 "절차"라는 말을 사용하여 "부작용을 일으키고 값을 돌려주지 않는 함수"를 의미합니다. 어떤 사람들은 그것을 단지 동의어로 사용합니다. 그러나 어느쪽으로 든, 당신은 함수를 작성하는 법을 압니다. – abarnert

+0

이것이 실제 문제가 아니라면 어떻게 해야할지 모르십니까? '아나그램 '에게 전화하는 법? 최소한 3 건의 거짓 사례와 3 건의 거짓 사례를 생각해내는 방법? 문자열과 결과를 출력하는 방법은 무엇입니까? – abarnert

+0

함수 들여 쓰기가 잘못되었습니다. 들여 쓰기는 Python에서 매우 중요합니다. – Barmar

답변

1

그냥 다른 기능처럼 정의하고 인수로 test_anagram 패스 문자열 내부의 anagram 함수를 호출 :

def test_anagram(): 
    strings = [("foo","bar"),("foo","oof"),("python","jython"),("tear","tare"),("foobar","bar"),("nod","don")] # create pairs of test strings 
    for s1,s2 in strings: # ("foo","bar") -> s1 = "foo",s2 = "bar"... 
     print(s1,s2) # print each string 
     anagram(s1,s2) # call anagram, anagram("foo","bar") ... 


In [17]: test_anagram() # call test_anagram() 
('foo', 'bar') 
False 
('foo', 'oof') 
True 
('python', 'jython') 
False 
('tear', 'tare') 
True 
('foobar', 'bar') 
False 
('nod', 'don') 
True 
+0

@PadriaicCunningham 내 코드를 따라 실행하지만 작동하지 않는 것 같습니까? 문자열을 출력 할 수는 있지만 anagram 함수를 호출 할 수는 없습니다. – alfiej12

+0

출력을 내 대답에 추가했습니다. 내 대답 –

+0

@PadriaicCunningham과 마찬가지로 'test_anagram()'을 사용하여 함수를 호출하고 있는지 확인하십시오. 감사합니다. – alfiej12

관련 문제