Monday, March 28, 2011

Python гэж хэлийг оролдож үзэв

Хэд хоногийн өмнө олж авсан нэг номоо урд шөнө сууж харж байгаад энэ хэл дээр ганц програм гэх юм уу даа юм бичиж үзлээ. Тоо таадаг, хамгийн энгийн тоглоом. Үндсэн зарчим нь binary search гэдгийг мэднэ гэж бодож байна.
Эхлээд "компьютер" нэг тоо санана, тэрийг нь тааж олно. Дараа нь санасан тоог чинь цаадах чинь олно. Тоо санаагүй хулхидах гэж оролдвол баригдана, гэхдээ тэр нь өөрөө бас жоохон алдаатай.
Indentation хийдэг нь их зүгээр юм шиг боловч, бүтэн кодондоо, эсвэл олон мөр кодонд while loop ч юм уу нэг оруулахад мөр мөрөөр нь урагшлуулах ядаргаатай санагдав. Бүтнээр нь бүгдийг нь хөдөлгөдөг арга бий болов уу?
Бас коммэнт бичих нь их төвөгтэй санагдлаа. # гэж байгаад, үүнээс хойшхийг коммэнт болгож байгаа боловч, C,C++ шиг /* comment */ гэж яаж хийхийг олж мэдсэнгүй.

import random

guessesTaken = 0

print('Hello! What is your name?')
myName = raw_input()

number = random.randint(1,20)
print('Well, ' + myName + ', I am thinking of a number between 1 and 20. ')

while guessesTaken < 6: print('Take a guess.') guess = raw_input() guess = int(guess) guessesTaken = guessesTaken + 1 if guess < number : print('Your guess is low.') if guess > number:
print('Your guess is high.')

if guess == number:
break

if guess == number:
guessesTaken = str(guessesTaken)
print('Good job, ' + myName + '! You guessed my number in ' + guessesTaken + ' guesses!')
if guess!= number:
number = str(number)
print('Nope. The number I was thinking of was ' + number)

print (myName + '! now it is your turn to think a number')
print ('What is your range of guessed number, 1 to ?')
minNumber = 1
maxNumber = raw_input()
maxNumber = int(maxNumber)
n = maxNumber/2
k = (maxNumber+minNumber)/2
answer = 'null'
low = 'low'
high = 'high'
yes = 'yes'

while guessesTaken < n:

mid = (maxNumber+minNumber)/2

print 'I guess %d' % (mid)
answer = raw_input()
guessesTaken +=1

if answer == low:
minNumber = mid
if mid == maxNumber:
print(myName + '! do not try to fool me!')
break

if answer == high:
maxNumber=mid
if mid == minNumber:
print(myName + '! do not try to fool me!')
break

if answer == yes:
break

if answer == yes:
guessesTaken = str(guessesTaken)
print(myName + '! I guessed your number in ' + guessesTaken + ' guesses!')

if answer != yes:
print(myName + '! did you think any number?')

1 comment:

  1. Энд indentation нь харагдахгүйм байна л даа

    ReplyDelete