728x90
반응형
스프링까지 자바를 끝내고 파이썬을 배우기 시작했다. 일단은 파이썬을 까는것부터 시작해서 간단한 문법 사항들부터 배웠다.
'''
Created on 2021. 5. 17.
@author: user
'''
from pickle import TRUE
print("Hello Python")
#주석 (한줄 주석)
'''
여러줄 주석
데이터형이 존재하지 않는다 (자동인식)
변수
변수명=값
a=10
파이썬
1) 특화 (주로 사용처)
2) 웹 사이트 (기본:S
'''
a=10
print(type(a))
'''
1. 변수
2. 연산자
3. 제어문
=======================
4. 함수
=======================
5. 라이브러리
6. 클래스(객체지향) => DTO, VO
=======================
7. 데이터베이스
9. 웹 (장고) : 게시판, 목록, 상세보기, 어드민페이지
=> 자료형(데이터형), 기본문법
자료형 (자바: 정수형, 실수형, 문자형, 논리형, 참조형(배열,클래스))
'''
a=10
print(type(a))
b=10.5
print(type(b))
c=True;
print(type(c))
d="Python"
print(type(d))
print(float(a))
print(bool(1))
for i in range(1,10):
print(i)
주석처리 하는법 부터 자료형 확인까지
for문 쓰는법 역시 배웠다. print()함수는 자동으로 줄바꿈되는 것까지 확인
'''
Created on 2021. 5. 17.
===== 참조형 ======= (자바:배열, 클래스)
1000번지 ====> 100
===== =======
a 1000번지
@author: user
'''
a=100
#출력
print(a)
# a는 10이다
# 옵션 (다른 데이터형 연결) %d(정수형), %f(실수형), %s(문자형)
print("a는 %d이다" %a)
b=10
c=20.0
d="홍길동"
print("b=%d, c=%f, d=%s" %(b,c,d))
print("b:{},c:{},d:{}".format(b,c,d))
print(f"b는 {b}, c는 {c} d는 {d}")
#sql=f"SELECT * FROM emp WHERE empno={empno}"
print(id(b),id(c),id(d)) #id=주소값
# 같은 값을 가지고 있는 변수는 주소값이 같다
a1=3
b1=3
print(id(a1),id(b1))
b1=5
print(a1 is b1)
c1="Hello"
print("c1:%s" %c1,end="Python\n")
#end => \t, \n
#end, sep(구분자)
print("a:%d" %a, "b:%f" %b, "c:%s" %c,sep=",")
id를 쓰면 주소값을 확인할 수 있다. 자료형은 각각 %d, %f %s로 나타내 준다.
''''
print('이름 입력:')
#사용자 입력값을 받는다
name=input()
#받은 데이터 출력
print(name, '님 반갑습니다')
'''
num=input("정수 입력:")
print(f"num={num}")
#문자열 """는 멀티라인 """
data="""hello
hello
hello"""
print(data)
멀티라인을 나타낼때는 """ """ 안에 문자열을 입력해준다. (pre)와 같다고 생각하면 될듯
'''
연산자
1) 산술연산자
+,-,*,/,% => / (정수/정수=실수)
// (정수//정수=정수), **(제곱) 10**2 => 10^2 => 100
문자열+문자열(결합) 문자열+정수(X), 문자열+실수(X)
str(정수) str(실수)
2) 비교연산자
==, !=, <, >, <=, >=
3) 논리연산자
&&(X)=>and, ||(X) => or, !(X) => not(부정)
4) 비트/쉬프트
&(직렬), |(병렬), ^ <<, >> : 아두이노 (파이썬으로 연결)
5) 대입연산자
= (치환연산자)
6) 복합대입연산자
+=, -=, *=, /=, %=, **=, //=
'''
'''
#치환연산자(대입연산자) : =
v1=3; #int v1=3
#복수의 주소에 저장
v1=v2=v3=5
print(v1,v2,v3,end="\t") #end는 default "\n"
a,b=10,20
print(f"a={a},b={b}")
c,d=b,a
print(f"c={c},d={d}")
'''
# 산술연산자
a=10
b=3
print(a+b)
print('홍'+'길'+'동')
print('홍길동'*10)
print(bool(1),bool(-1),bool(0),bool(3)) #0이 아닌 모든 수는 True, 0일 경우만 False
print(bool(0.0),bool(0.1),bool(10.5),bool(0.3)) #0.0이 아닌 모든 실수는 True,0.0일 경우에만 False
연산자는 이전에 배운것과 거의 동일하지만 하나 다른게 있다면 / 연산자는 정수끼리 나눴을때 실수가 나오고,
// 연산자는 정수끼리 나왔을때 정수가 나온다는 점이다.
문자열에 * 연산자도 사용이 가능하다 (자바에서는 안된다)
'''
변수 설정 : 변수명=값 (일반 데이터형을 사용하지 않는다) => 값이 저장되어 있는 주소를 기억한다 (모든 변수가 참조형)
설정된 변수는 메모리 주소를 가지고 있다.
연산자 : 형변환 정수(int), 실수(float), 문자열(str)
//, **
&&=>and, ||=>or, !=>not
'''
import random
#조건문
rand=random.randrange(1, 101) #1~100 사이의 난수 발생
'''
print(f"난수값={rand}")
if rand%2==0:
print(f"{rand}는(은) 짝수입니다")
print("프로그램 종료") #if문 소속문장이 아니다
print("난수값은 %d" %rand)
if rand%2==0:
print("%d는 짝수입니다" %rand)
else:
print("%d는 홀수입니다" %rand)
#다중 조건문
if rand>=90:
print("A학점")
elif rand>=80:
print("B학점")
elif rand>=70:
print("C학점")
elif rand>=60:
print("D학점")
else:
print("F학점")
#if => 항상 수행
if True:
print("항상 수행")
money=1000
age=25
if money>=500:
item="사과"
if(age<=30):
msg="new"
else:
msg="old"
print(item,msg)
'''
com=random.randrange(0, 3)
print("컴퓨터 난수:%d" %com)
user=int(input("0(가위),1(바위),2(보) 가위바위보:"))
if com==0:
print("컴퓨터:가위")
if user==0:
print("사용자:가위")
print("비겼다")
elif user==1:
print("사용자:바위")
print("사용자 Win!!")
elif user==2:
print("사용자:보")
print("컴퓨터 Win!")
if com==1:
print("컴퓨터:바위")
if user==0:
print("사용자:가위")
print("컴퓨터 Win!")
elif user==1:
print("사용자:바위")
print("비겼다")
elif user==2:
print("사용자:보")
print("사용자 Win!!")
if com==2:
print("컴퓨터:보")
if user==0:
print("사용자:가위")
print("사용자 Win!!")
elif user==1:
print("사용자:바위")
print("컴퓨터 Win!")
elif user==2:
print("사용자:보")
print("비겼다")
조건문 사용 역시 자바와 비슷하다. 한가지 다른 점은 들여쓰기를 기준으로 블록안에 있는지 없는지의 효과를 내기 때문에 이를 유의해서 사용해야한다.
'''
while 조건: => 조건이 True일 경우만 수행 => 반복횟수가 지정이 안된 경우
실행문장 1
실행문장 2
'''
# 1~10까지 출력하는 While
i=1
while i<=10:
print("i=%d" %i)
i=i+1
print("================")
i=1
while i<=10:
if(i%2==0):
print("i=%d" %i)
i+=1
print("================")
i=1
while i<=10:
if(i%2!=0):
print(f"i={i}")
i+=1
print("======누적합=======")
sum=0
i=1
while i<=100:
sum+=i
i+=1
print(f"1~100까지 누적합:{sum}")
#1~100 짝수의 합, 홀수의 합, 전체 합
i=1
sum=odd=even=0
while i<=100:
if i%2==0:
even+=i
else:
odd+=i
sum+=i
i+=1
print(f"1~100까지 짝수 합:{even}")
print(f"1~100까지 홀수 합:{odd}")
print(f"1~100까지 총합:{sum}")
while문 사용도 간단하다
'''
1. 문자열 형
1) 문자들을 표현할 수 있는 자료형
2) ' ', " " 사이에 들어가 있는 문자들
"Hello Python", 'Hello Python'
123456789101112
3) index번호 0부터 시작
4) 중간의 일부를 수정할 수 없다
msg='Hello Python'
msg1="안녕 파이썬"
print(msg)
print(msg1)
print(msg[0]) #H
# 슬라이싱
for s in msg:
print(s,end="")
print('',end="\n")
ss="홍길동입니다"
print(ss)
for i in range(1,10):
for j in range(2,10):
print(f"{j}*{i}={j*i}",end="\t")
print('')
'''
ss='ABCDEFGHIJ'
# 문자열 중에 원하는 데이터만 추출
# 문자열 자체는 for으로 출력할 수 있다
print(f"ss={ss}") #전체 출력
print(f"ss[0]={ss[0]}") #처음 문자를 가져올때
print(f"ss[-1]={ss[-1]}") #마지막 문자를 가져올때
print(f"ss[0:3]={ss[0:3]}") #처음부터 3글자를 가지고 온다
print(f"ss[1:]={ss[1:]}") #두번째 문자부터 나머지 전체를 출력
print(f"ss[0:3]={ss[0:3:2]}") #0,1,2 (2번은 건너 뛰어라)
print(f"ss[:]={ss[:]}") #전체
# 문자열의 주요 함수
# 파이썬을 이용한 웹에 필요한 기능 (장고) ==> (장고 <==>스프링) 연결 융합 ===> Vue.js, Ajax
# 챗봇(미정)
'''
변환
= upper : 대문자 변환
= lower : 소문자 변환
'''
data="Hello Python"
print(data.upper())
print(data.lower())
data=data.upper()
print(data.rstrip()) #trim과 같음
print(data.swapcase()) #소문자 => 대문자, 대문자 => 소문자 hELLO
문자열을 다루는 문법. 사실 정처기에서 나온 것들인데 이제서야 배우다니 좀 아쉬웠다. 먼저 배웠으면 실기를 확실하게 붙었을지 모르겠다
# list=>ArrayList => 기본은 배열
# [] => 중복된 데이터 허용, index번호를 가지고 있다 (순서)
# 예) nums=[1,2,3,4,5,6...]
# names=["","","","",""] => for
# 오라클 데이터 연습 => 함수
from ctypes.test.test_pickling import name
names=["jeno","renjun","chenle","js25","fullsun"]
# print
print(names)
''''
print(names[0])
print(names[1])
print(names[2])
print(names[3])
print(names[4])
for name in names:
print(name)
'''
print(f"인원:{len(names)}")
# 추가
names.append("mark") # 마지막에 추가
names.insert(1, "dream") # 지정된 위치에 추가
print(names)
# 삭제
names.remove("mark")
print(names)
# 수정
names.extend(["curry", "arrioe"]) #여러개를 동시에 등록
print(names)
names.reverse()
print(names)
num=[3,5,1,2,4]
print(num)
num.sort(reverse=True)
print(num)
문자열 배열 사용법
append, insert로 추가가 가능하며, sort도 사용이 가능하다
일단 여기까지 정리하고 다음시간에는 더 심화된 문법을 배우지 않을까 싶다
728x90
반응형
'programming > Gukbi' 카테고리의 다른 글
국비 교육 99일차 - python class, 상속, 파일 입출력 (0) | 2021.05.20 |
---|---|
국비 교육 98일차 - python db연결, 함수화 (0) | 2021.05.20 |
국비 교육 95일차 - vue 활용 검색페이지 만들기 (0) | 2021.05.14 |
국비 교육 93일차 - VueJS (0) | 2021.05.11 |
국비 교육 92일차 - validation (0) | 2021.05.07 |