#2중 for문으로 별찍기
for i in range(1,6):
for j in range(1,6):
if (j==i):
print('*', end=' ')
else:
print(' ', end=' ')
print(' ')
#print() 줄바꿈 없는함수
print("my ", end=' ')
print("dream ", end=' ')
print("is ", end=' ')
print("Programming ", end= ' ')
#키보드로부터 글자입력받기
'''
message=input("글자를 입력하세요 ")
print(message)
numStr=input("숫자를 입력하세요")
num=int(numStr)
print(num*2)
'''
#for (초기화; 조건; 증감) 이런 형태가 없음
for i in range(10):
print(i)
for i in range(1,100):
print(i)
for i in range(1,100,2): #2씩 증가
print(i)
for i in range(100,0,-1):
print(i)
for i in reversed(range(10)):
print(i)
#이중 for문으로 구구단을 출력하자
for i in range(2,10):
for j in range(1,10):
print(i*j, end=' ')
print(' ')
#for 문으로 배열(리스트) 출력
myArray=[10,20,30]
#for i in range(3):
# print(myArray[i])
for num in myArray:
print(num)
#for 문으로 튜플 출력
myTuple=(10,20,30)
#for i in range(3):
# print(myTuple[i])
for num in myTuple:
print(num)
#for 문으로 딕셔너리 출력
myDic={1:'hong',2:'tom',3:'hana'}
#for i in range(3):
# print(myDic[i+1])
for key,value in myDic.items():
print(key,value)
# 조건문 if 문
num=10
if num==10:
print("num=10임")
else:
print("10이 아님")
if num==10:
print("num=10")
print("num=10")
#논리 연산자를 사용한 if문
num=10
if num%2==0 and num%5==0 :
print("2의 배수이면서 5의 배수이다")
else :
print("그 외의 수 ")
#if else if 구문
if num%2==0:
print("2의배수")
elif num%3==0:
print("3의배수")
elif num%4==0:
print("4의 배수")
else:
print("그외의 수")
#연습문제
import random
randomNum = random.randrange(1,100)
if(randomNum<=20):
print("20이하임")
elif(randomNum<=50):
print("50이하임")
elif(randomNum <=70):
print("70이하임")
else:
print("그외 의수임")
#10~90까지 랜덤 수를 발생시켜서
#20이하이면 "20이하임"
#50이하이면 "50이하임"
#70이하이면 "70이하임"
#그 외의 수이면 "그외의 수 임 "
if[] :
print("True")
else:
print("False")
if 0:
print("True")
else:
print("False")
if "":
print("True")
else:
print("False")
#집합 자료형 set
#수학의 집합 합집합 교집합 차집합 개념
#요소의 중복을 허락하지 않음 같은 값의 요소는 딱 한개만 존재
#순서가 없음 . 인덱스 없음
mySet = set([1,2,3])
print(mySet)
mySet=set("abcde")
print(mySet)
#인덱스 순서가 없다
#인덱스로 접근하고 싶으면 리스트로 변환
mySet=set([1,2,3,4,5])
print(mySet)
myList=list(mySet)
print(myList)
#교집합 :서로 중복된 집합
set1=set([1,2,3,4,5])
set2=set([4,5,6,7,8])
print(set1 &set2)
print(set1.intersection(set2))
#합집합 : 중복제거 하고 서로 합한 집합
print(set1 | set2)
print(set1.union(set2))
#차집합 : 집합에서 집합을 뺀 집합
print(set1-set2)
print(set1.difference(set2))
#요소 추가하기
set1={1,2,3,4,5}
set1.add(6)
print(set1)
#여러요소 추가
set1={1,2,3}
set1.update({4,5,6})
print(set1)
#특정값 제거
set1.remove(3)
print(set1)
#딕셔너리 자료형 (키워드- 설명)
#키와 값(key-value)로 되어진 데이터 자료형이다
#자바: 콜랙션 map key-value
#js : key-value객체
#형식 {key1:value1, key2:value2}
dic={'key1':'hong', 'key2':1000}
print(dic['key1'])
print(dic['key2'])
dic={1:'hong', 2:'tom'} #key값으로 정수를 줄 수도 있다
print(dic)
#딕셔너리 value로 배열을 넣을 수 있따
dic= {'array' : [1,2,3]}
print(dic)
#딕셔너리 value로 딕셔너리를 넣을 수도 있다
dic2={'dic':dic}
print(dic2)
#딕셔너리 key-value 쌍 추가
dic={1: 'hong'}
dic[2]='tom'
print(dic)
#딕셔너리 요소 삭제
dic= {1: 'hong',2: 'tom', 3:'hana'}
del dic[2]
print(dic)
#딕셔너리 관련 함수들
dic={'name':'hong', 'age':30, 'address': ' 한양'}
#키만 리스트로 얻어옴
keys=dic.keys()
for key in keys:
print(key)
#키리스트 객체를 리스트로 형변환
list_keys=list(keys)
print(list_keys)
for key in list_keys:
print(key)
#값만 벨류 리스트로 가져옴
values=dic.values()
print(values)
list_values=list(values)
for value in list_values:
print(value)
#키-값을 모두 가져온다
key_values=dic.items()
print(key_values)
list_key_values=list(key_values)
for t in list_key_values:
print(t)
#해당 키가있는지 조사
dic={'name' : 'hong' ,'age':30, 'address': '한양'}
print('name' in dic)
print('age' in dic)
print('address' in dic)
#딕셔너리 삭제
dic.clear()
#튜플 자료형 tuple
#튜플 : 리스트랑 비슷, 딕셔너비(키-값)과 비슷
#함수의 반환 값으로 쓰면 좋음 . 함수의 반환값은 ㅏㅇ상 1개
# 여러 값을 반환하고 싶을 때 쓰면 좋음
#특징
#소괄호로 둘러 쌈 (요소1, 요소 2)
#생성, 삭제, 수정은 가능한데, 값을 바꿀 수는 없음
#빈 튜플
myTuple= ()
print(myTuple)
myTuple=(1,2,3)
print(myTuple)
myTuple=1,2,3
print(myTuple)
#다중 튜플
myTuple=(1,2,3,('hong','tom'))
print(myTuple)
#튜플은 삭제불가
#del myTuple[0] 에러
#튜플은 변경 불가
#myTuple[0]=4 에러
#튜플의 인덱싱
myTuple =(1,2,3)
print(myTuple[0])
print(myTuple[1])
print(myTuple[2])
#일부분만 가져올 때
myTuple =(1,2,3,4,5)
print(myTuple[:2])
print(myTuple[3:])
print(myTuple[1:3])
#튜플끼리 더하기
myTuple1 =(1,2,3)
myTuple2 =(4,5,6)
myTuple3 = myTuple1+ myTuple2
print(myTuple3)
#튜플 곱하기
myTuple=(1,2,3)
print(myTuple*2)
#함수 선언
def myFunc():
return (10,20,30)
myTuple=myFunc()
print(myTuple)
#리스트 list
#파이썬의 리스트는 java array+ arraylist(linked list)
#결합된것
#빈배열 만들기
array= []
print(array)
array=[10,20,30,40,50]
print(array)
#다른 타입의 데이터도 추가 가능
array=[10,20,'hong','tom']
print(array)
#리스트 안에 리스트 추가 가능
array=[10,20,['hong','tom']]
print(array)
#리스트 인덱싱
array=[10,20,30]
print(array[0])
print(array[1])
print(array[2])
print(array[-1]) # 끝에서 첫번째
#print(array[3])) #인덱스 벗어남 에러 index out of range
#2중 리스트 인덱싱
array =[10,20,['hong','tom']]
print(array[0])
print(array[1])
print(array[2][0])
print(array[2][1])
#3중 리스트 인덱싱
array=[10,20,['hong','tom',[30,40]]]
print(array[2][2][0])
print(array[2][2][1])
#리스트에서 부분 요소 가져오기
array=[10,20,30,40,50]
print(array[:2])
print(array[3:])
print(array[1:4])
#중첩 리스트에서 부분 요소 가져오기
array=[10,20,30,['hong','tom','hava'],40,50,60]
print(array[3][:2])
print(array[3][1:])
print(array[3][1:2])
#리스트 연산자 사용하기
array1=[10,20,30]
array2=[40,50,60]
#리스트 합치기
array3=array1+array2
print(array3)
#리스트 곱하기
print(array1 *2)
#리스트 길이 구하기
array =[10,20,30]
print(len(array))
#리스트 요소 수정
array[0]=40
print(array)
#요소 삭제
del array[1]
print(array)
#요소 추가
array=[10,20,30]
array.append(40)
print(array)
#리스트 안에 리스트 추가
array.append(['hong','tom'])
print(array)
#정렬
array=[20,10,30,50,40]
array.sort()
print(array)
#역정렬
array=[20,10,30,50,40]
array.reverse()
print(array)
array=['나','다','가']
array.sort()
print(array)
array.reverse()
print(array)
#리스트 요소 인덱스 찾기
array=[10,20,30]
print(array.index(20))
#리스트 요소 삽입
array=[10,20,30]
array.insert(1,40)
print(array)
#리스트 요소 삭제
array.remove(30)
print(array)
#마지막 요소 가져오기
array=[10,20,30]
print(array.pop()) #마지막 요소를 반환하고, 마지막 요소는 삭제 된다
print(array)
#요소가 몇개인지 세기
array=[10,20,30,20,30]
print(array.count(20))
#배열 추가하기, + 연산과 동일
array=[10,20,30]
array.extend([40,50])
print(array)
#리스트 연습문제
# [10,20,30,40,50] 리스트를 생성하고
array=[10,20,30,40,50]
#1. 리스트의 개수를 출력하시오
print(len(array))
#2. 맨끝에 60을 추가하시오
array.extend([60])
#3. 모든 요소의 값을 출력하시오
print(array)
#4. 20부터 40까지만 출력하시오
print(array[1:4])
#5. 30을 삭제후 출력하시오
del array[2]
print(array)
#6. 세번째 요소로 70, 네번째 요소로 80을 추가하시오
array.insert(3,70)
array.insert(4,80)
print(array)
#7. ['hong','tom','hana'] 를 중첩 리스트로 추가하시오
array.extend([['hong','tom','hana']])
print(array)
#8. 중첩리스트로 추가된 ['hong','tom','hana']을 출력하시오
print(array[7:])
#문자열 관련 함수들
string ="python programming"
#문자열 길이
print(len(string))
#같은 문자 몇개 있는지 세기
print(string.count('p'))
#문자 찾기- 첫번째 n의 위치를 찾는다
print(string.find('n'))
print(string.find('x')) #못찾으면 -1을 리턴
print(string.find('programming')) #문자열로 찾기
#문자 찾기 : index()
print(string.index('n'))
#print(string.index('x')) #못찾으면 에러 발생
#문자열 중간에 삽입하기
indicator=','
string =indicator.join('abcde')
print(string)
#전체를 대문자로
string="python programming"
print(string.upper())
#전체를 소문자로
print(string.lower())
#공백 지우기
#왼쪽 공백 지우기
string="python"
print(string.lstrip())
#오른쪽 공백 지우기
print(string.rstrip())
#양쪽 공백 지우기
print(string.strip())
#문자열 바꾸기
string="python programming"
print(string.replace("programming","Coding"))
#문자열 나누기
arrayString=string.split() #공백을 기준으로 나눠서 배열로 리턴
for str in arrayString:
print(str)
string="john, tom , hana"
arrayString=string.split(',') #구분자를 넣어서 split
for str in arrayString:
print(str)
#연습문제
#"python programming " 이라는 문자열을 만들고
string ="python programming"
#1 문자열의 길이를 출력하시오
print(len(string))
#2 'o'라는 문자가 몇개 있는지 출력하시오
print(string.count('o'))
#3 "python Cool Programming" 으로 만들어서 출력하시오
print(string.replace(" "," Cool "))
string=string.replace(" "," Cool ")
#$ 3번 문자열을 공백으로 나누어서 split 한 후 for 문으로 출력하시오
arrayString=string.split()
for str in arrayString:
print(str)
#5 "Cool" 을 "Nice" 로 바꿔서 출력하시오
print(string.replace("Cool","Nice"))
string=string.replace("Cool","Nice")
#6 "python Nice programming"에서 N의 위치를 출력하시오
print(string.find('N'))
#문자열 중간에 추가
string[:5] + "문자열" + string[5: ]
#중간 문자열 가져오기
string[5:10]
#문자열 데이타
print('python programming')
print("python programming")
print("""python programming""")
print('''python programming''')
print('python "cool" programming')
print("python 'cool' programming")
print("python\'s programming")
print('python\"s programming')
#여러줄 문자열
multiLine='''
여러줄
문자열
'''
print(multiLine)
multiLine="""
여러줄
문자열
"""
print(multiLine)
#문자열 연결
str1="pytyon"
str2="programming"
str3=str1+str2
print(str3)
print(str1, str2)
print(str1*2)
print("="*20)
print(str1 + " "+ str2)
print("=" *20)
#문자열 길이
print(len(str1))
#문자열 인덱싱
string ="python programming"
print(string[0])
print(string[1])
print(string[2])
print(string[-1]) #g
print(string[-2]) #n
#문자열 순환 : {} 중괄호 없는 대신에 들여쓰기/ 내어쓰기로 블록 처리
for ch in string :
print(ch)
#부분 문자열 가져오기
print(string[0:6])
print(string[:6]) #0생략 가능
print(string[:]) #모든 문자열 출력
print(string[7:]) #마지막은 생략 가능
#문자열 포맷팅
string ="%s programming" % "swift"
print (string)
string="%d years old" %20
print(string)
#정렬과 공백
string="%10s" % "hi"
print(string) #오른쪽으로 정렬 ' hi'
string="%-10stom" % "hi"
print(string) #왼쪽으로 정렬 'hi tom'
#소숫점 표현
string ="%0.2f" % 3.141592 #소숫점 2자리 까지 표현
print(string)
string="%10.4f" %3.141592 #소숫점 4자리. 자릿수 10개로 표현
print(string)
string="%010.4f" %3.141592 #소숫점 4자리. 자릿수 10개로 표현 (0으로 공백 채움 )
print(string)
#포맷 심볼
# %d : decimal 십진 정수
# %s : string 문자열
# %c : char 문자 한자
# %f : float 부동 소수 (실수)
# %o : octor 8진수
# %x : hex 16진수
# %% : '%' 문자 자체 출력시
#문자열 포매팅
string= "%s programming" % "python"
print(string)
string="%d count" %10
print(string)
#포맷 함수를 사용한 포매팅
#{0} 첫번째 인자
#{1} 두번째 인자
string ="{0} {1}".format("python","programming")
print(string)
a=10
string="{0} strike count ".format(a)
print(string)
#이름으로 넣기
string="first:{name1}, second:{name2}".format(name1="john", name2="tom")
print(string)
#이름과 인덱스를 혼용
string ="bankname: {0}, accuont:{account}". format("hana bank",account=1000)
print(string)
#format 함수와 심볼의 혼용
str='str1'
num1=100
num2=200
num3=300
num4=400
print('{0} {1} %d {2} {3} %s'.format('test','111',num1,num2) % (num3, str1))
#정렬 기능
#왼쪽 정렬
string ="'{0:<10}".format("hi")
print(string)
#오른쪽 정렬
string ="'{0:>10}".format("hi")
print(string)
#가운데 정렬
string ="'{0:^10}".format("hi")
print(string)
#공백을 특정문자로 채우기
string="'{0:0^10}'".format("hi")
print(string)
string="'{0:!^10}'".format("hi")
print(string)
#소숫점 표현하기
PI=3.141592
#F f 대소문자 구분없음
#소숫점 둘째 자리 까지 표현
string ="{0:0.2f}".format(PI)
print(string)
#문자열 전체 길이 10, 소숫점 넷째자리까지 표현
string ="{0:10.4f}".format(PI)
print(string)
#{} 중괄호를 문자로 표현하기
string= "{{{0}}}".format(PI)
print(string)