Difference between r1.28 and the current
@@ -2,7 +2,7 @@
* [열파참]
* 금요일 열파참. --그런데 이제 금요일이 아니다--
* [Python3Tutorial]
=== 참가자 ===
* [박희정], [원준연], [이원준], [조영준]
* 금요일 열파참. --그런데 이제 금요일이 아니다--
* [Python3Tutorial]
* [http://goo.gl/11ZcFB 열파참 Google문서]
== 4월 25일 ===== 참가자 ===
* [박희정], [원준연], [이원준], [조영준]
@@ -293,17 +293,360 @@
* [박희정], [안미리], [조영준], [이원준]
=== 범위 ===
=== 범위 ===
* 2.9.4. Random Remarks
* 2.9.5. Inheritance
* 2.9.5.1. Multiple Inheritance
* 2.9.6. Private Variables
* 2.9.7. Odds and Ends
* 2.9.8. Exceptions Are Classes Too
* 2.9.9. Iterators
* 2.9.10. Generators
* 2.9.11. Generator Expressions
* 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일 ==
== 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로 제로페이지 도서 관리 만들기
개요 ¶
- 열파참
- 금요일 열파참.
그런데 이제 금요일이 아니다
- Python3Tutorial
- 열파참 Google문서
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
- 4.1. if Statements
가장 기억에 남는 부분 ¶
- 박희정: 전반적으로 싱기방기.
- 원준연: 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
- 5.1. More on Lists
가장 기억에 남는 부분 ¶
- 조영준: 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
- 6.1. More on Modules
- 7. Input and Output
- 7.1. Fancier Output Formatting
- 7.1. Fancier Output Formatting
5월 23일 ¶
범위 ¶
- 7. Input and Output
- 7.1. Fancier Output Formatting
- 7.2. Reading and Writing Files
- 7.1. Fancier Output Formatting
내용 ¶
- 형식을 바꿔서 읽고 그 자리에서 정리하기로.
- 새로운 참가자도 있고 방식도 바꿨으니 뒷 내용 복습.
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.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
- 9.3.1. Class Definition Syntax
7월 16일 ¶
범위 ¶
- 9.4. Random Remarks
- 9.5. Inheritance
- 9.5.1. Multiple 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
- 10.1. Operating System Interface
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
- 11.1. Output Formatting
8월 6일 ¶
한 것 ¶
- Ch. 4 ~ 6 정리
- 이로써 Python3Tutorial은 마무리
- 이로써 Python3Tutorial은 마무리
- 간단한 회의
- 다음 2주 동안에는 간단한 프로그래밍 연습
- Toy Programming?
- https://wiki.python.org/moin/ProblemSets
- Toy Programming?
- 방학 전 주에는 프로젝트 준비 시작
- 프로젝트는 크지는 않더라도 확장이 용이해야 하며, 참가자들의 모두의 흥미를 끌 수 있는 주제로
- 프로젝트 아이디어
- GAE + Django + Twitter API?
- GAE + Django + Twitter API?
- 프로젝트는 크지는 않더라도 확장이 용이해야 하며, 참가자들의 모두의 흥미를 끌 수 있는 주제로
- 다음 2주 동안에는 간단한 프로그래밍 연습
8월 13일 ¶
한 것 ¶
- 파이선 연습!
- 아라비안 숫자를 입력받아 로마 숫자로 출력하기 (http://en.wikipedia.org/wiki/Roman_numerals, 로마숫자바꾸기)
- gray code 출력하기
- 아라비안 숫자를 입력받아 로마 숫자로 출력하기 (http://en.wikipedia.org/wiki/Roman_numerals, 로마숫자바꾸기)
조영준 ¶
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로 제로페이지 도서 관리 만들기