2008年10月8日水曜日

久し振りにpythonに触った/インスタントハッキング編

暫くぶりにpythonをいじる。
本気でやらないと・・・。
とりあえず、いろいろ忘れていたので、インスタントハッキング http://www.python.jp/Zope/intro/instant_hacking_jp から復習。
練習問題を解く。

#=----------------------------------
#練習1
#ユーザーから続けて数字の入力を受け付け、合計が100に近付くまでその数字を足し続けるプログラム
#結局100に近づけようとするプログラムだと、100になるしかないんじゃないかという(100を超えると「近くなくなる」)ことを考えてしまい、合計が100になるまで足すプログラムになってしまった。
#多分正解は、限りなく100に近づけようとする(100を超えず、100にならない)数字を繰り出すものだと思うけど、ここでの設問が意図する効果を以下で上げられているはずなので、このまま。


#usernumに数値を入れて貰う
usernum = input("ikutsu?=")
#100を超えた数値だと入れ直し
while usernum > 100:
usernum = input("fuck.onemore")
#100になるまでusernum2に入力を続ける
while usernum < 100:
print "ima",usernum
usernum2=input("more=")
usernum = usernum+usernum2
#100超えるとまずいので、まずいです処理
if usernum > 100:
usernum = usernum-usernum2
print"koeta"
#一件落着
print "100."

#------------------------------------
#ユーザーから100個の数字を受け付け合計を表示するプログラム
#while文で書けると思うけど、意図しているのがfor文のようだったので、for文で。countsをもてあましてる感ありありです。


#はまったところは、合計値「sums」を初期化(0にする)し忘れたこと。
sums = 0
#rangeは1,100と書くと、99までしかカウントしてくれないので101と記述。
for counts in range (1,101):
sums2 = input("number=")
print "ima",counts,"kai"
#sumsとsums2をsumsに代入して、それを100回繰り返す。
sums = sums + sums2
print "goukei",sums

#-------------------------------------
#ユークリッドの互除法によって2個の数の最大公約数を求める関数を書きなさい
#inputで書いてしまってから、「何故これを関数でやるのか」さっぱり分からなかったけど、要は大きなプログラムになるとこういう省力化をしていかないとたちいかなくなるよと言いたいんだろう。


def kouyaku(a,b):
#inputで書いた名残
# a = input("how number is a = ?")
# b = input("how number is b = ?")
#aはbより大きいのが条件なので、その条件を満たさせる
while a <= b:
b = input("NO,its huge.=")
#bが0じゃ無いときは以下を繰り返す(0になれば終わりだから)
while b != 0:
b,a = a%b,b
return a

#example(テスト)
print kouyaku(196,24)

#------------------------------------------

#以下、ごみ。
#雑記も役に立つかもしれないと。

print "PART 1","hello world"
print "hello world"
print "goodbye, world"

#-----------------------

print "PART 2","The Area of Rectangle"
#tate X yoko
tate=10 #width
yoko=20 #height
print tate*yoko

#-----------------------

print "PART 3","RADIUSxRADIUSx3.14"
radius = 30
print radius**2*3.14

#-----------------------

print "PRT4 input"
radius = input("radius?=")
print radius**2*3.14

print "PART5 whats foobar"
foo = input
bar = foo("what is bar?")
print bar

#------------------------

#tempera
tempe = input("whats temp?")
if tempe > 50:
print "cooked"
else:
print "more"


#-------------------------
#shikaku ka maru ka no menseki keisan

#display
print "select it"
print "1 shikaku"
print "2 maru"

#input
docchi = input("doreyo?")

if docchi == 1:
tate=1
yoko=5
area=tate*yoko
print area
elif docchi == 2:
radius=input("radiusplease")
area=3.14*(radius**2)
print area
else:
print
print "die"
print

#----------------------------
for nanika in "a","b","c":
print "fuck",nanika

for counts in range(1,100):
print counts,"of death"
print 100-counts,"of death"

#----------------------------
#from XXXXXX import XXXXX
from time import sleep
waitsec = input("do you wait a sec?")
sleep(waitsec)
print "you wait" ,waitsec ,"SEC,"


#----------------------------
#while no tsukaikata

from time import sleep

print "this program wait 3sec and question"

slept=2
sleep(slept)

ans=input("how many past time?")

while ans != slept:
print "huh?"
slept=slept+3
sleep(slept)
ans=input("how many past time huh?")

print"okey"

0 件のコメント:

コメントを投稿