U E D R , A S I H C RSS

열파참/금요일

Difference between r1.22 and the current

@@ -1,8 +1,8 @@
== 개요 ==
* [열파참]
* 금요일 열파참.
* 금요일 열파참. --그런데 이제 금요일이 아니다--
* [Python3Tutorial]
* [http://goo.gl/11ZcFB 열파참 Google문서]
== 4월 25일 ==
=== 참가자 ===
* [박희정], [원준연], [이원준], [조영준]
@@ -143,7 +143,6 @@
}}}

==== 안미리 ====
{{{
f1 = open('source.txt','r')
f2 = open('result.txt','w')
@@ -157,7 +156,6 @@
f1.close()
f2.close()
}}}
{{{
nums1 = [0,0,0,0]
nums2 = [0,0,0,0]
@@ -213,3 +211,442 @@
for i in range(0,4) :
print(square[i][0],square[i][1],square[i][2],square[i][3])
}}}
 
==== 박희정 ====
{{{
source = open('source.txt', 'r')
result = open('result.txt', 'w')
 
for line in source:
result.write(line[::-1])
 
source.close()
result.close()
}}}
{{{
size = 3
result = []
 
for i in range(0, size):
tempList = []
for j in range(0, size):
tempList.append(input("result: "))
tempList.append(max(tempList))
result.append(tempList)
 
lastList = []
for i in range(0, size):
tempList = []
for j in range(0, size):
tempList.append(result[j][i])
lastList.append(max(tempList))
 
lastList.append(max(lastList))
 
result.append(lastList)
 
print(result)
}}}
==== 이원준 ====
{{{
matrix = []
 
for i in range(3):
row_max = 0
row = []
for j in input().split(" "):
inputed_number = int(j)
row.append(inputed_number)
row.append(max(row))
matrix.append(row)
 
row = []
 
for i in range(4):
row.append(max(matrix[j][i] for j in range(3)))
 
row[-1] = max(row)
 
matrix.append(row)
 
for row in matrix:
print(row)
}}}
 
== 7월 9일 ==
=== 참가자 ===
* [박희정], [안미리], [조영준]
=== 범위 ===
 
* 9.1. A Word About Names and Objects
* 9.2. Python Scopes and Namespaces
* 9.2.1. Scopes and Namespaces Example
* 9.3. A First Look at Classes
* 9.3.1. Class Definition Syntax
* 9.3.2. Class Objects
* 9.3.3. Instance Objects
* 9.3.4. Method Objects
* 9.3.5. Class and Instance Variables
 
== 7월 16일 ==
=== 참가자 ===
* [박희정], [안미리], [조영준], [이원준]
=== 범위 ===
 
* 9.4. Random Remarks
* 9.5. Inheritance
* 9.5.1. Multiple Inheritance
* 9.6. Private Variables
* 9.7. Odds and Ends
* 9.8. Exceptions Are Classes Too
* 9.9. Iterators
* 9.10. Generators
* 9.11. Generator Expressions
 
== 7월 23일 ==
=== 참가자 ===
* [박희정], [안미리], [조영준], [이원준]
=== 범위 ===
* 10. Brief Tour of the Standard Library
* 10.1. Operating System Interface
* 10.2. File Wildcards
* 10.3. Command Line Arguments
* 10.4. Error Output Redirection and Program Termination
* 10.5. String Pattern Matching
* 10.6. Mathematics
* 10.7. Internet Access
* 10.8. Dates and Times
* 10.9. Data Compression
* 10.10. Performance Measurement
* 10.11. Quality Control
* 10.12. Batteries Included
 
== 7월 30일 ==
=== 참가자 ===
* [박희정], [조영준], [이원준], [안미리]
=== 범위 ===
* 11. Brief Tour of the Standard Library – Part II
* 11.1. Output Formatting
* 11.2. Templating
* 11.3. Working with Binary Data Record Layouts
* 11.4. Multi-threading
* 11.5. Logging
* 11.6. Weak References
* 11.7. Tools for Working with Lists
* 11.8. Decimal Floating Point Arithmetic
 
== 8월 6일 ==
=== 참가자 ===
* [박희정], [조영준], [이원준], [안미리]
=== 한 것 ===
* Ch. 4 ~ 6 정리
* 이로써 [Python3Tutorial]은 마무리
* 간단한 회의
* 다음 2주 동안에는 간단한 프로그래밍 연습
* Toy Programming?
* https://wiki.python.org/moin/ProblemSets
* 방학 전 주에는 프로젝트 준비 시작
* 프로젝트는 크지는 않더라도 확장이 용이해야 하며, '''참가자들의 모두의 흥미'''를 끌 수 있는 주제로
* 프로젝트 아이디어
* GAE + Django + Twitter API?
 
== 8월 13일 ==
=== 참가자 ===
* [조영준], [원준연]
=== 한 것 ===
* 파이선 연습!
* 아라비안 숫자를 입력받아 로마 숫자로 출력하기 ([http://en.wikipedia.org/wiki/Roman_numerals], [로마숫자바꾸기])
* gray code 출력하기
 
==== 조영준 ====
{{{
symbol_1 = ['I', 'X', 'C', 'M']
symbol_5 = ['V', 'L', 'D']
 
while True:
try:
user_input = int(input('Input a number (1 ~ 998, 999 to exit)'))
except Exception:
print('not valid input')
continue
 
if user_input == 999:
print('good bye')
exit()
 
if user_input < 1 or user_input > 998:
print('not valid input (must be 1 ~ 998)')
continue
 
stack = []
digit = 0
while user_input > 0:
current_number = user_input % 10
current_string = ''
user_input = int(user_input / 10)
 
if current_number % 5 == 4:
current_string += symbol_1[digit]
 
if current_number == 4:
current_string += symbol_5[digit]
else:
current_string += symbol_1[digit + 1]
 
else:
if current_number > 4:
current_number -= 5
current_string += symbol_5[digit]
 
current_string += symbol_1[digit] * current_number
 
stack.append(current_string)
digit += 1
 
while stack:
print(stack.pop(), end='')
 
print()
}}}
 
{{{
while True:
try:
user_input = int(input('Input a number (input < 1 to exit)'))
except Exception:
print('not valid input')
continue
 
if user_input < 1:
print('good bye')
exit()
 
user_input -= 1
result = ['0', '1']
while user_input > 0:
length = len(result)
result *= 2
 
for i in range(length):
result[i] = '0' + result[i]
result[i + length] = '1' + result[i + length]
user_input -= 1
 
 
print(result)
}}}
 
==== 원준연 ====
{{{
source = open('source.txt','r')
result = open('result.txt','w')
 
for line in source:
romanNum=''
isEmpty = line
if isEmpty=='':break
temp=int(isEmpty)
if temp<=0:
print('Too Small!')
 
elif temp>999:
print('Too Big!')
 
elif temp==999:
exit()
 
else:
while temp>=500:
temp-=500
romanNum+='D'
 
while temp>=100:
temp-=100
romanNum+='C'
 
while temp>=50:
temp-=50
romanNum+='L'
while temp>=10:
temp-=10
romanNum+='X'
 
if temp==1:
romanNum+='I'
elif temp==2:
romanNum+='II'
elif temp==3:
romanNum+='III'
elif temp==4:
romanNum+='IV'
elif temp==5:
romanNum+='V'
elif temp==6:
romanNum+='VI'
elif temp==7:
romanNum+='VII'
elif temp==8:
romanNum+='VIII'
elif temp==9:
romanNum+='IX'
romanNum+='\n'
 
result.write(romanNum)
 
source.close()
result.close()
}}}
 
== 8월 20일 ==
[http://www.practicepython.org/exercise/2014/07/05/18-cows-and-bulls.html Cows And Bulls] 풀기
=== 풀이 ===
==== 조영준 ====
{{{
import random
 
def cowsnbulls(answer_length):
if type(answer_length) != int:
print('answer_length must be a number')
return
 
if not 1 <= answer_length <= 10:
print('answer_length must be between 1 and 10')
return
answer = []
numbers = list(range(10))
playing = True
 
while len(answer) < answer_length:
answer.append(numbers.pop(random.randrange(len(numbers))))
 
print(answer)
print('Welcome to the Cows Bulls Game!')
print('Enter a number:')
 
while playing:
try:
user_input = [int(x) for x in list(input('>>> '))]
except Exception:
print('try again')
continue
 
if len(user_input) != answer_length:
print('try again')
continue
 
if len([True for x in user_input for y in user_input if x == y]) != answer_length:
print('try again')
continue
 
cows = len([True for x, y in zip(user_input, answer) if x == y])
bulls = len([True for x, y in enumerate(user_input) for z, w in enumerate(answer) if y == w and x != z])
 
print('{0} cow{1}, {2} bull{3}'.format(cows, 's' if cows > 1 else '', bulls, 's' if bulls > 1 else ''))
 
if bulls == answer_length:
playing = False
 
if __name__ == '__main__':
cowsnbulls(4)
}}}
==== 안미리 ====
{{{
import random
 
answer = random.sample(range(10),4)
while True:
guess = []
error = 0
cow = 0
bull = 0
 
nums = input("Enter a number ")
 
for x in nums:
guess.append(int(x))
 
if len(guess) != 4:
print("Wrong lenth")
continue
 
for n in range(0,4):
for m in range(n+1,4):
if guess[n] == guess[m]:
error += 1
 
if error > 0:
print("Wrong number")
continue
 
for x in range(0,4):
if answer[x] == guess[x]:
cow += 1
for n in range(0,4):
for m in range(0,4):
if n==m:
continue
if guess[n] == answer[m]:
bull += 1
 
if cow>1:
print(cow,'cows'+' ')
else:
print(cow,'cow'+' ')
 
if bull>1:
print(bull,'bulls'+' ')
else:
print(bull,'bull'+' ')
if cow == 4:
print('Win')
break
}}}
 
==== 이원준 ====
{{{
import random
 
print("Welcome to the Cows and Bulls Game!")
answer = random.sample(range(10), 4)
 
while(True):
try:
input_list = list(map(int, list(input("Enter a number : "))))
except ValueError:
continue
finally:
pass
 
if len(input_list) != 4:
continue
cow = 0
bull = 0
 
if answer == input_list:
print("good, kids.")
break
else:
for i in range(4):
if input_list[i] == answer[i]:
cow+=1
elif input_list[i] in answer:
bull+=1
 
print("your input : ", input_list)
print("cow : ", cow, " bull : ", bull)
 
print(answer)
}}}
 
== 8월 27일 ==
=== 참가자 ===
* [조영준], [이원준], [안미리], [박희정]
=== 프로젝트 ===
플랫폼: GAE, 프레임워크: django로 제로페이지 도서 관리 만들기



개요

4월 25일

범위

  • Ch. 1 ~ Ch. 4 중간

5월 2일

범위

  • Ch. 4
    • 4.1. if Statements
    • 4.2. for Statements
    • 4.3. The range() Function
    • 4.4. break and continue Statements, and else Clauses on Loops
    • 4.5. pass Statements
    • 4.6. Defining Functions
    • 4.7. More on Defining Functions
    • 4.8. Intermezzo: Coding Style

가장 기억에 남는 부분

  • 박희정: 전반적으로 싱기방기.
  • 원준연: arguments 관련해서 기능이 굉장히 많아서 편리한 언어라고 느낌.
  • 이원준: for / else가 너무 강렬했다.
  • 조영준: function 호출할 때 기본값이 있거나, 어느 인자에 넣을 것인지 명시하는게 신기했음.

5월 9일

범위

  • 5. Data Structures
    • 5.1. More on Lists
    • 5.2. The del statement
    • 5.3. Tuples and Sequences
    • 5.4. Sets
    • 5.5. Dictionaries
    • 5.6. Looping Techniques
    • 5.7. More on Conditions
    • 5.8. Comparing Sequences and Other Types

가장 기억에 남는 부분

  • 조영준: import를 하지 않고 다양한 data structures를 사용할 수 있다는게 신기. python의 정신(?)이 돋보인다고 해야 하나.
  • 이원준: List Comprehensions과 unpacking이 신기하고 짜증
  • 원준연: iterater가 생각보다 다양하고, 다양한 만큼 하나하나가 깐깐? 하다 느낌
  • 박희정: 개발자 편의가 물신물신 느껴짐.

5월 16일

범위

  • 6. Modules
    • 6.1. More on Modules
    • 6.2. Standard Modules
    • 6.3. The dir() Function
    • 6.4. Packages
  • 7. Input and Output
    • 7.1. Fancier Output Formatting

가장 기억에 남는 부분

  • Python님 아름다우세요! Python님 감사합니다! Python님 위대하시네요! 그런데 왜 2.0이랑 3,4랑 천지차이세요! - 원준연

5월 23일

범위

  • 7. Input and Output
    • 7.1. Fancier Output Formatting
    • 7.2. Reading and Writing Files

내용

  • 형식을 바꿔서 읽고 그 자리에서 정리하기로.
  • 새로운 참가자도 있고 방식도 바꿨으니 뒷 내용 복습.

5월 30일

범위

  • 2.8. Errors and Exceptions

실험

import sys
dir(sys) #를 심심해서 했는데 stderr를 발견.
sys.stderr = open('error.txt', 'w')

#이 다음부터 발생한 error는 콘솔에 출력되지 않고 파일로 기록됨
#stderr, stdout, stdin 등등도 가능.

7월 2일

long time no see!

내용

오랜만에 하니 문서 읽는게 아니라 코드 짜면서 워밍 업!

조영준

open("result.txt","w").write(open("source.txt").readline()[::-1])
#skywave
import sys

#set size
if len(sys.argv) == 1:
	ySize = 3
	xSize = 3
elif len(sys.argv) == 3:
	ySize, xSize = [int(x) for x in sys.argv[1:]]
else:
	print("wrong argument number(s) (arg(s) with 0 or 2 length is allowed)")
	exit()

if min(xSize, ySize) < 1:
	print("wrong list size - size should be positive")
	exit()

totalSize = ySize * xSize

#get input
userInput = [int(x) for x in input("type {0} numbers:".format(totalSize)).split()]

if len(userInput) != totalSize:
	print("wrong number of items ({0} instead of {1})".format(len(userInput), totalSize))
	exit()

#find max
intList = []
for i in range(int(len(userInput) / xSize)):
	intList.append(userInput[i * xSize:(i + 1) * xSize])
	intList[-1].append(max(intList[-1]))

intList.append([])

for i in range(xSize + 1):
	intList[-1].append(max([x[i] for x in intList[:-1]]))

#print
print(intList)

안미리

f1 = open('source.txt','r')
f2 = open('result.txt','w')

string = f1.read()
size = len(string)
nstring = string[size::-1]

f2.write(nstring)

f1.close()
f2.close()
nums1 = [0,0,0,0]
nums2 = [0,0,0,0]
nums3 = [0,0,0,0]

for i in range(0,3) :
	number = input()
	nums1[i] = int(number)

for i in range(0,3) :
	number = input()
	nums2[i] = int(number)

for i in range(0,3) :
	number = input()
	nums3[i] = int(number)

for i in range(0,3) :
	bignum = nums1[0]
	if nums1[i]>bignum:
		bignum = nums1[i]
nums1[3] = bignum

for i in range(0,3) :
	bignum = nums2[0]
	if nums2[i]>bignum :
		bignum = nums2[i]
nums2[3] = bignum

for i in range(0,3) :
	bignum = nums3[0]
	if nums3[i]>bignum :
		bignum = nums3[i]
nums3[3] = bignum

square = [nums1,nums2,nums3,[0,0,0,0]]

for i in range(0,4) :
	bignum = square[0][i]
	for j in range(0,4) :
		if square[j][i]>bignum :
			bignum = square[j][i]
	square[3][i] = bignum

for i in range(0,4) :
	for j in range(0,4) :
		bignum = square[0][0]
		if square[i][j]>bignum :
			bignum = square[i][j]

square[3][3] = bignum

for i in range(0,4) :
	print(square[i][0],square[i][1],square[i][2],square[i][3])

박희정

source = open('source.txt', 'r')
result = open('result.txt', 'w')

for line in source:
	result.write(line[::-1])

source.close()
result.close()
size = 3
result = []

for i in range(0, size):
	tempList = []
	for j in range(0, size):
		tempList.append(input("result: "))
	tempList.append(max(tempList))
	result.append(tempList)

lastList = []
for i in range(0, size):
	tempList = []
	for j in range(0, size):
		tempList.append(result[j][i])
	lastList.append(max(tempList))

lastList.append(max(lastList))

result.append(lastList)

print(result)

이원준

matrix = []

for i in range(3):
	row_max = 0
	row = []
	for j in input().split(" "):
		inputed_number = int(j)
		row.append(inputed_number)
	row.append(max(row))
	matrix.append(row)

row = []

for i in range(4):
	row.append(max(matrix[j][i] for j in range(3)))

row[-1] = max(row)

matrix.append(row)

for row in matrix:
	print(row)

7월 9일

범위


  • 9.1. A Word About Names and Objects
  • 9.2. Python Scopes and Namespaces
    • 9.2.1. Scopes and Namespaces Example
  • 9.3. A First Look at Classes
    • 9.3.1. Class Definition Syntax
    • 9.3.2. Class Objects
    • 9.3.3. Instance Objects
    • 9.3.4. Method Objects
    • 9.3.5. Class and Instance Variables

7월 16일

범위


  • 9.4. Random Remarks
  • 9.5. Inheritance
    • 9.5.1. Multiple Inheritance
  • 9.6. Private Variables
  • 9.7. Odds and Ends
  • 9.8. Exceptions Are Classes Too
  • 9.9. Iterators
  • 9.10. Generators
  • 9.11. Generator Expressions

7월 23일

범위

  • 10. Brief Tour of the Standard Library
    • 10.1. Operating System Interface
    • 10.2. File Wildcards
    • 10.3. Command Line Arguments
    • 10.4. Error Output Redirection and Program Termination
    • 10.5. String Pattern Matching
    • 10.6. Mathematics
    • 10.7. Internet Access
    • 10.8. Dates and Times
    • 10.9. Data Compression
    • 10.10. Performance Measurement
    • 10.11. Quality Control
    • 10.12. Batteries Included

7월 30일

범위

  • 11. Brief Tour of the Standard Library – Part II
    • 11.1. Output Formatting
    • 11.2. Templating
    • 11.3. Working with Binary Data Record Layouts
    • 11.4. Multi-threading
    • 11.5. Logging
    • 11.6. Weak References
    • 11.7. Tools for Working with Lists
    • 11.8. Decimal Floating Point Arithmetic

8월 6일

한 것

  • Ch. 4 ~ 6 정리
  • 간단한 회의
    • 다음 2주 동안에는 간단한 프로그래밍 연습
    • 방학 전 주에는 프로젝트 준비 시작
      • 프로젝트는 크지는 않더라도 확장이 용이해야 하며, 참가자들의 모두의 흥미를 끌 수 있는 주제로
      • 프로젝트 아이디어
        • GAE + Django + Twitter API?

8월 13일

참가자

한 것

조영준

symbol_1 = ['I', 'X', 'C', 'M']
symbol_5 = ['V', 'L', 'D']

while True:
    try:
        user_input = int(input('Input a number (1 ~ 998, 999 to exit)'))
    except Exception:
        print('not valid input')
        continue

    if user_input == 999:
        print('good bye')
        exit()

    if user_input < 1 or user_input > 998:
        print('not valid input (must be 1 ~ 998)')
        continue

    stack = []
    digit = 0
    while user_input > 0:
        current_number = user_input % 10
        current_string = ''
        user_input = int(user_input / 10)

        if current_number % 5 == 4:
            current_string += symbol_1[digit]

            if current_number == 4:
                current_string += symbol_5[digit]
            else:
                current_string += symbol_1[digit + 1]

        else:
            if current_number > 4:
                current_number -= 5
                current_string += symbol_5[digit]

            current_string += symbol_1[digit] * current_number

        stack.append(current_string)
        digit += 1

    while stack:
        print(stack.pop(), end='')

    print()

while True:
    try:
        user_input = int(input('Input a number (input < 1 to exit)'))
    except Exception:
        print('not valid input')
        continue

    if user_input < 1:
        print('good bye')
        exit()

    user_input -= 1
    result = ['0', '1']
    
    while user_input > 0:
        length = len(result)
        result *= 2

        for i in range(length):
            result[i] = '0' + result[i]
            result[i + length] = '1' + result[i + length]
        
        user_input -= 1


    print(result)

원준연

source = open('source.txt','r')
result = open('result.txt','w')

for line in source:
    romanNum=''
    isEmpty = line
    if isEmpty=='':break
    temp=int(isEmpty)
    if temp<=0:
        print('Too Small!')

    elif temp>999:
        print('Too Big!')

    elif temp==999:
        exit()

    else:
        while temp>=500:
            temp-=500
            romanNum+='D'

        while temp>=100:
            temp-=100
            romanNum+='C'

        while temp>=50:
            temp-=50
            romanNum+='L'
    
        while temp>=10:
            temp-=10
            romanNum+='X'

        if temp==1:
            romanNum+='I'
        elif temp==2:
            romanNum+='II'
        elif temp==3:
            romanNum+='III'
        elif temp==4:
            romanNum+='IV'
        elif temp==5:
            romanNum+='V'
        elif temp==6:
            romanNum+='VI'
        elif temp==7:
            romanNum+='VII'
        elif temp==8:
            romanNum+='VIII'
        elif temp==9:
            romanNum+='IX'
        romanNum+='\n'

    result.write(romanNum)

source.close()
result.close()

8월 20일

풀이

조영준

import random

def cowsnbulls(answer_length):
    if type(answer_length) != int:
        print('answer_length must be a number')
        return

    if not 1 <= answer_length <= 10:
        print('answer_length must be between 1 and 10')
        return
    
    answer = []
    numbers = list(range(10))
    playing = True

    while len(answer) < answer_length:
        answer.append(numbers.pop(random.randrange(len(numbers))))

    print(answer)
    print('Welcome to the Cows Bulls Game!')
    print('Enter a number:')

    while playing:
        try:
            user_input = [int(x) for x in list(input('>>> '))]
        except Exception:
            print('try again')
            continue

        if len(user_input) != answer_length:
            print('try again')
            continue

        if len([True for x in user_input for y in user_input if x == y]) != answer_length:
            print('try again')
            continue

        cows = len([True for x, y in zip(user_input, answer) if x == y])
        bulls = len([True for x, y in enumerate(user_input) for z, w in enumerate(answer) if y == w and x != z])

        print('{0} cow{1}, {2} bull{3}'.format(cows, 's' if cows > 1 else '', bulls, 's' if bulls > 1 else ''))

        if bulls == answer_length:
            playing = False

if __name__ == '__main__':
    cowsnbulls(4)

안미리

import random

answer = random.sample(range(10),4)
while True:
	guess = []
	error = 0
	cow = 0
	bull = 0

	nums = input("Enter a number ")

	for x in nums:
		guess.append(int(x))

	if len(guess) != 4:
		print("Wrong lenth")
		continue

	for n in range(0,4):
		for m in range(n+1,4):
			if guess[n] == guess[m]:
				error += 1

	if error > 0:
		print("Wrong number")
		continue

	for x in range(0,4):
		if answer[x] == guess[x]:
			cow += 1
	for n in range(0,4):
		for m in range(0,4):
			if n==m:
				continue
			if guess[n] == answer[m]:
				bull += 1

	if cow>1:
		print(cow,'cows'+' ')
	else:
		print(cow,'cow'+' ')

	if bull>1:
		print(bull,'bulls'+' ')
	else:
		print(bull,'bull'+' ')
	
	if cow == 4:
		print('Win')
		break

이원준

import random

print("Welcome to the Cows and Bulls Game!")
answer = random.sample(range(10), 4)

while(True):
	try:
		input_list = list(map(int, list(input("Enter a number : "))))
	except ValueError:
		continue
	finally:
		pass

	if len(input_list) != 4:
		continue
		
	cow = 0
	bull = 0

	if answer == input_list:
		print("good, kids.")
		break
	else:
		for i in range(4):
			if input_list[i] == answer[i]:
				cow+=1
			elif input_list[i] in answer:
				bull+=1

	print("your input : ", input_list)
	print("cow : ", cow, " bull : ", bull)

print(answer)

8월 27일

프로젝트

플랫폼: GAE, 프레임워크: django로 제로페이지 도서 관리 만들기

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:24
Processing time 0.0790 sec