/ / कोलाज प्रोग्राम बनाना बोरिंग सामान को स्वचालित करता है - अजगर, अजगर-3.4

एक कोलात्ज़ प्रोग्राम बनाना उबाऊ सामान स्वचालित करता है - पायथन, पायथन-3.4

मैं पायथन के साथ ऑटोमेटिंग द बोरिंग स्टफ के अध्याय 3 के अंत में मिले प्रोजेक्ट के दिशा-निर्देशों का उपयोग करते हुए कोलाजेट प्रोग्राम लिखने की कोशिश कर रहा हूं। मैं पायथन 3.4.0 का उपयोग कर रहा हूं। यहाँ परियोजना की रूपरेखा है:

Collatz () नाम का एक फ़ंक्शन लिखें जिसमें एक हैनंबर नाम का पैरामीटर। यदि संख्या समान है, तो Collatz () संख्या // 2 को प्रिंट करना चाहिए और इस मान को वापस करना चाहिए। यदि संख्या विषम है, तो collatz () को 3 * नंबर + 1 प्रिंट करना चाहिए और वापस करना चाहिए। फिर एक प्रोग्राम लिखें जो उपयोगकर्ता को पूर्णांक में टाइप करता है और जब तक कि मान 1 वापस नहीं आता तब तक उस नंबर पर कॉलज़ैट () को कॉल करता रहता है।

इस कार्यक्रम का आउटपुट कुछ इस तरह दिख सकता है: संख्या दर्ज करें: 3 10 5 16 8 8 2 2 1

मैं एक ऐसा फंक्शन बनाने की कोशिश कर रहा हूं जो अगर और का उपयोग करता हैकुछ समय के भीतर एलिफ कथन। मैं चाहता हूं कि संख्या प्रिंट हो जाए, और फिर लूप की शुरुआत में लौटें और कोलेजन अनुक्रम का उपयोग करके खुद को कम करें, जिसके परिणामस्वरूप प्रत्येक संख्या को मुद्रित किया जा रहा है क्योंकि यह लूप के माध्यम से जाता है। मेरे वर्तमान कोड के साथ, मैं केवल संख्या का पहला उदाहरण मुद्रित करने में सक्षम हूं, और यह संख्या उसके बाद लूप के माध्यम से नहीं जाती है। यहां मेरा कोड है:

#collatz

print("enter a number:")
try:
number = (int(input()))
except ValueError:
print("Please enter a valid INTEGER.")


def collatz(number):
while number != 1:

if number % 2==0:
number = (number//2)
#print(number)
return (print(int(number)))

elif nnumber % 2==1:
number = (3*number+1)
#print(number)
return (print(int(number)))

continue


collatz(number)

उत्तर:

उत्तर № 1 के लिए 10
def collatz(number):

if number % 2 == 0:
print(number // 2)
return number // 2

elif number % 2 == 1:
result = 3 * number + 1
print(result)
return result

n = input("Give me a number: ")
while n != 1:
n = collatz(int(n))

आउटपुट:

मुझे एक संख्या दें: 3 10 5 16 8 4 2 1

मुझे एक संख्या दें: 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1


जवाब के लिए 3 № 2

यहां मैं क्या आया:

import sys

def collatz(number):
if number % 2 == 0:           # Even number
result = number // 2
elif number % 2 == 1:         # Odd number
result = 3 * number + 1

while result == 1:            # It would not print the number 1 without this loop
print(result)
sys.exit()                # So 1 is not printed forever.

while result != 1:            # Goes through this loop until the condition in the previous one is True.
print(result)
number = result           # This makes it so collatz() is called with the number it has previously evaluated down to.
return collatz(number)

print("Enter a number: ")         # Program starts here!
try:
number = int(input())         # ERROR! if a text string or float is input.
collatz(number)
except ValueError:
print("You must enter an integer type.")

# Fully working!

जवाब के लिए 2 № 3

तुंहारे collatz() फ़ंक्शन को केवल अगले मूल्य को प्रिंट और वापस करना चाहिए। (यह वापस आने पर समाप्त हो जाता है।)

The while पाश अंदर नहीं होना चाहिए collatz() समारोह।

आप "ve भी असंगत चर नाम मिला (n, number, nnumber), और कुछ महत्वपूर्ण कोड बाहर टिप्पणी की है ।


जवाब के लिए 0 № 4

Nuncjo समाधान है कि काम मिल गया । मैं इसे थोड़ा tweaked कोशिश जोड़ने के लिए और त्रुटि से निपटने के लिए बयान को छोड़कर ।

def collatz(number):
if number % 2 == 0:
print(number // 2)
return number // 2

elif number % 2 == 1:
result = 3 * number + 1
print(result)
return result

try:
n = input("Enter number: ")
while n != 1:
n = collatz(int(n))
except ValueError:
print("whoops, type an integer, bro.")

जवाब के लिए 0 № 5
def collatz(number):
while number != 1:
if number % 2 == 0:
number = number // 2
print(number)

elif number % 2 == 1:
number = number * 3 + 1
print(number)

try:
num = int(input())
collatz(num)
except ValueError:
print("Please use whole numbers only.")

यह वही है जो मैं अपने दम पर के साथ आया था और पूरी तरह पर आधारित है जो मैं "किताब से अब तक सीखा ve ।यह मुझे थोड़ा सा लेकिन उपकरण मैं इस्तेमाल किया है कि मेरे लिए अमूल्य था मेरे समाधान ढूंढने और भी इस सामग्री को सीखने में अमूल्य गया है में से एक लिया अजगर visualizer उपकरण में है: http://www.pythontutor.com/visualize.html#mode=edit

मैं देख रहा था कि मेरे कोड कर रहा था और जहां यह लटका हो रही थी और मैं लगातार tweaks बनाने के लिए जब तक मैं यह सही है सक्षम था ।


जवाब के लिए 0 № 6
def collatz(num):
if num % 2:
return 3 * num + 1
else:
return num // 2

while True:
try:
number = int(input("Enter a positive integer."))
if number <= 0:
continue
break
except ValueError:
continue


while number != 1:
number = collatz(number)
print(number)

उत्तर के लिए 0 № 7

मेरा कोड

def collatz(number):
while number != 1:
if number % 2 == 0:
print(number // 2)
number = number // 2
elif number % 2 == 1:
print(number * 3 + 1)
number =  number *3 + 1

try:
print ("Enter the number to Collatz:")
collatz(int(input()))
except ValueError:
print("Enter a valid integer")

जवाब के लिए 0 № 8
def collatz(number):
if number % 2 == 0:  # Even number
return number // 2

elif number % 2 == 1:  # Odd number
return number * 3 + 1

print("Please enter a number") # Ask for the number


# Check if the number is an integer, if so, see if even or odd. If not, rebuke and exit
try:
number = int(input())
while number != 1:
collatz(number)
print(number)
number = collatz(number)
else:
print("You Win. The number is now 1!")
except ValueError:
print("Please enter an integer")

यह वही है जो मैं इस अभ्यास व्यायाम के लिए के साथ आया था ।यह एक इनपुट के लिए पूछता है सत्यापित करता है कि यह "एक पूर्णांक एस ।अगर नहीं तो उसे डांटता है और बाहर निकलता है. यदि यह है, यह collatz अनुक्रम के माध्यम से छोरों जब तक परिणाम 1 है और फिर आप जीत ।


जवाब के लिए 0 № 9
def collatz(number):
if number % 2 == 0:
print(number//2)
return number // 2
elif number % 2 == 1:
print(3*+number+1)
return 3 * number + 1
r=""
print("Enter the number")
while r != int:
try:
r=input()
while r != 1:
r=collatz(int(r))
break
except ValueError:
print ("Please enter an integer")

मैं इनपुट मांयता जोड़ा


जवाब के लिए 0 № 10

इस थ्रेड पर प्रत्येक समाधान एक बात याद आ रही है: यदि उपयोगकर्ता इनपुट "1" फ़ंक्शन अभी भी Collatz अनुक्रम का परिकलन चलाना चाहिए ।मेरा समाधान:

def collatz(number):
while number == 1:
print("3 * " + str(number) + " + 1 = " + str(3*number+1))
number = 3*number+1 ##this while loop only runs once if at all b/c at end of it the value of the variable is not equal to 1
else:
while number != 1:
if number % 2 == 0:
print(str(number) + " // 2 = " + str(number//2))
number = number//2
else:
print("3 * " + str(number) + " + 1 = " + str(3*number+1))
number = 3*number+1

print("Please input any integer to begin the Collatz sequence.")

while True:
try:
number = int(input())
collatz(number)
break
except ValueError:
print("please enter an integer")

0 उत्तर के लिए № 11
डीईएफ़ collatz (संख्या): यदि (संख्या% 2 = = 0): n = number//2 मुद्रण (n) रिटर्न n और: ev = 3 * संख्या   1 प्रिंट (ev) वापसी ev num1 = इनपुट ("संख्या दर्ज करें: n") आज़माएं: num = int (num1) यदि (num = = 1): print ("1 से बड़ा कोई पूर्णांक दर्ज करें") elif (num > 1) : a = collatz (num) करते समय (True): यदि (a = = 1): विराम और: a = collatz (a) और: मुद्रण ("कृपया, collatz अनुक्रम को प्रारंभ करने के लिए एक धनात्मक पूर्णांक दर्ज करें") को छोड़कर: मुद्रण ("कृपया, कोई पूर्णांक दर्ज करें")

एक को उबाऊ सामान स्वचालित से अध्याय समारोह तक के आधार पर समाधान के साथ आया की कोशिश करो ।यदि Collatz समस्या से संबंधित मदद की जरूरत है, तो यहां पर जाएं: http://mathworld.wolfram.com/CollatzProblem.html


उत्तर के लिए 0 № 12

मैं एक ही पाठ्यक्रम पढ़ रहा हूं और मैं एक बहुत लंबे समय से समाधान किया (यह सुधार जब मैं कुछ नया सीखते हैं) ।मैं तिथि करने के लिए अपने collatz कार्यक्रम को ध्यान में रखते हुए सुझाव है कि आप अध्यायों में प्रगति, अपने अच्छे प्रशिक्षण ।मेरा स्ट्रिंग हेरफेर और अब एक collatzrecords. txt को बचाने!

मैं प्रत्यावर्तन का उपयोग करके मूल समस्या हल (एक विधि कॉल ही):

def autocollatz(number):
global spam
spam.append(number)
if number % 2 == 0:
autocollatz (int(number/2))
elif number % 2 == 1 and number != 1:
autocollatz(int(number*3+1))

स्पैम सभी मूल्यों के लिए मेरी सूची है 1 के लिए अपने रास्ते पर एक संख्या "देखता है" ।जैसा कि आप देख सकते हैं, जब संख्या भी है ethod संख्या के साथ अगिन कहा जाता है/संख्या भी है, तो यह संख्या * 3 1 के साथ कहा जाता है ।

संख्या संशोधित = = 1 एक बिट की जांच करें । मुझे आशा है कि यह समय की गणना बचाता है-२३ ००० ००० पहले से ही im!(वर्तमान रिकॉर्ड 1 के लिए इसे पाने के लिए ७०४ चरणों के साथ १५ ७३३ १९१ है)


उत्तर के लिए 0 № 13
import sys

def collatz(number):
if number % 2 == 0:
result = number // 2
print (result)

elif number % 2 == 1:
result = number * 3 + 1
print (result)

while result == 1:
sys.exit

while result != 1:
number = result
collatz(number)

print ("Enter a number")

try:
number = int(input())
collatz(number)

except ValueError:
print("Please enter a valid integer")

उत्तर के लिए 0 № 14
def collatz(number):
while number != 1:
if number %2==0:
number = number//2
yield number
elif number %2 ==1:
number=number*3 +1
yield number

while True:
try:
for n in collatz(int(input("Enter number:"))):
print(n)
break
except ValueError:
print("Please enter an integer")

अतिरिक्त, जबकि सच पाश उपयोगकर्ता एक गैर-पूर्णांक आदानों के बाद कार्य जारी रखने के लिए कार्यक्रम में मदद मिलेगी.


उत्तर के लिए 0 № 15
def collatz(number):
if number % 2 == 0:
return number // 2
elif number % 2 == 1:
return 3 * number + 1

try:
chosenInt = int(input("Enter an integer greater than 1: "))

while chosenInt < 2:
print("Sorry, your number must be greater than 1.")
chosenInt = int(input("Enter an integer greater than 1: "))

print(chosenInt)

while chosenInt != 1:
chosenInt = collatz(chosenInt)
print(chosenInt)

except ValueError:
print("Sorry, you must enter an integer.")

उत्तर के लिए 0 № 16
def collatz(number):
if number%2==0:
return number//2
elif number%2==1:
return number*3+1
step=1 #counter variable for amusement and seeing how many steps for completion.
try: #in case of ValueError
number=int(input("Enter a Number for Collatz Sequencing:"))
while collatz(number)!=1:
print(collatz(number))
number=int(collatz(number))
if collatz(number)!=1:
print("Calculating step " + str(step) + ".")
step=step+1
else:
print ("Calculating step " +str(step) + ".")
print("1 Has Been Reached.")
except ValueError:
print("Enter an Integer please:")

जवाब के लिए 0 № 17

यहां "मेरी 19 लाइनें एस:

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


number = 0
while number == 0:
try:
number = int(input("Please enter a number: "))
if number == 0:
print("Number must be an integer not equal to zero.")
else:
while True:
number = collatz(number)
print(number)
if abs(number) == 1 or number == -5 or number == -17:
break #Collatz seq ends/enters recurring loop when number hits -17, -5, -1 or 1
except ValueError:
print("Number must be an integer.")

जवाब के लिए 0 № 18

मुझे लगता है कि यह समाधान भी स्वीकार किए जाते है एक से शिक्षार्थियों के लिए आसान हो सकता है:

def collatzSequence(number):
if (number % 2 == 0): # if it"s even
number = number // 2
else:                 # if it"s odd
number = number * 3 + 1
print (number)
return (number)

n = int(input("Enter a number: "))
while (n != 1):
n = collatzSequence(n)

परिणाम कुछ इस तरह होगा:

Enter a number: 5
16
8
4
2
1

उत्तर के लिए 0 № 1 9

मेरे कोड की एक ही व्यायाम है कि मैं के साथ आया है के लिए 17 लाइनें ।

    def collatz(number):
""" check if the number is even or odd and performs calculations.
"""
if number % 2  == 0: # even
print(number // 2)
return number //2
elif number % 2 != 0: # odd
result = 3*number+1
print(result)
return result

try:
n = input("Enter number: ") # takes user input
while n !=1: # performs while loop until "n" becomes 1
n = collatz(int(n)) # passes "n" to collatz() function until it arrives at "1"
except ValueError:
print("Value Error. Please enter integer.")

उत्तर के लिए -1 № 20

कुछ है कि मुझे मेरी सीखने की इस अवस्था में एक बहुत मदद की समझ है कि एक समारोह में एक अच्छी तरह से परिभाषित उद्देश्य है, और समारोह में एक पाश जोड़ने चाहिए पतला है ।

यहां मेरा समाधान है (किसी ने मुझे इस पर काम करने में मदद की और एक ही गलतियों को मैं अपने कोड में देख संबोधित):

def collatz(number): # defining the function here. The function takes 1 argument - number.

if number % 2 == 0: # if statement where we say that if the remainder of number by 2 is 0, then its an even number.
even = number // 2 # assign number divided by two to a variable named even.
print(even) # displaying that even value.
return even # return that value.
else: # else if number is not even.
odd = 3 * number + 1 # then it is an odd number, and if it is an odd number then we will multiple that number by 3 and add 1.
print(odd) # printing the odd number
return odd # return that value

try:
number = int(input("please enter a number:")) # number is an input from a user and here we ask the user for what input
except ValueError:
print("Error, you must enter an integer.")


while number !=1: # while loop states that while the value of number does not equal 1...
number = collatz(number) # ... assign the output of the collatz() function as a new value of the number, and run the collatz() function again.