2017-10-23 2 views
2

사용자 입력 번호를 취하여 출력 번호가 1이 아닐 때마다 새로운 번호를 출력하는 python3.3 프로그램 (Windows 10 및 메모장과 명령 줄 사용)을 만들려고합니다. 그리고 짝수의 경우 2로 나누고 홀수의 경우 3을 더한 다음 1을 곱하여 숫자를 변경합니다. 지루한 것들을 자동화하십시오. 시퀀스

def collatz(): 
    if collatz() == ' ': #if collatz() doesn't have a return value yet 
     number = input('Please Enter A Number. ') 
    number = int(number) 
    if number % 2 == 0: 
     number = number // 2 
     return number 
    else: 
     number = 3*number + 1 
     return number 

while number > 1: 
    collatz() 

나는 한 무리의 주위에 물건을 이동, 더 많은 사용자 입력을 한 후 프롬프트를 나는 루프의 첫 번째 작업을 반복하기를 입수했습니다, 나는 나에게 단지 하나 개의 번호를주고 그것을 입수했고? 누군가 말해 줄 수있는 방법

답변

0

당신은 대부분의 조각을 가지고있는 것처럼 보이지만 정확한 순서는 아닙니다.

def collatz(number): 
    if number % 2 == 0: 
     number = number // 2 
    else: 
     number = 3 * number + 1 
    return number 

my_number = int(input('Please Enter A Number: ')) 

print(my_number) 

while my_number > 1: 
    my_number = collatz(my_number) 
    print(my_number) 
0

당신이 필요로하는 한 반복 한 후, 그것에 인수로 숫자를 받아들이고, 다른 번호를 반환하는 함수 collatz()이다 : 나는 당신이 더 뭔가를 원하는 같은데요. 함수 내부에서 input()을 사용하고 싶지는 않습니다. 함수가 더 이상 재사용 할 수 없기 때문입니다. 정수 45 func() 함수에 전달 된 후 내부 func() 명령으로 사용될 수있는 바와 같이,

def func(var): 
    print(var) 

func(45) 

그것은 번호 45을 출력한다 :

다음 코드를 고려한다. 그런 다음 func()이 끝나면 사라집니다. 비슷한 방법으로 함수를 collatz() 함수에 전달하는 것이 좋습니다. func()는 5를 반환으로

def func(): 
    return 5 

var = func() 
print(var) 

이 코드는 숫자 5를 출력 할 것이다, 그것은 var에 저장됩니다 :

다음 코드는 return 키워드를 사용하는 방법을 보여줍니다.

코드에서이 두 기술을 모두 사용하여 함수 밖에서 사용자가 입력 한 내용을 그대로두고 숫자에 collatz()을 계속 호출하여 그 결과를 다음 반복에 전달하고,

완전한 코드를 작성하지 않았습니다. 너는 그 일을 스스로 할 수 있어야한다. 그러나 너가 고투하고 있다면 나에게 알려줘.

관련 문제