input 함수
인풋함수로 메모리에 넣고, 프린트함수로 출력가능
어케?
print('키보드를 통해서 데이터를 입력하세요.')
userInputdata=input()print(userInputdata)
키보드를 통해서 데이터를 입력하세요.
안녕하세요.
안녕하세요.
인풋함수로 안내문구도 설정 가능... 어 졸리다
다시시작
저렇게 안하고
userInoutdata=input('키보드를 통해서 데이터를 입력하세요.')
print(userInputdata)
하면 바로 키보드를 통해서 데이터를 입력하세요 나온다.
음 그런데 위에꺼랑 뭐가 다르지?
코드 한줄 더 안쓴다는 차이인가?
그리고 인풋에 넣은 내용은 모두다 문자(열)자료형으로 인식함(str)
뭘넣던간에..! 논리형 넣어도!
userInputdata=input()
print(userInputdata)
print(type(userInputdata))
이렇게 했을때 10을 넣어도 str가 나온다는 말.
10
10
<class 'str'>
그런데 가끔은 숫자로 나와야하는 경우도 있고, 논리형이 나와야하는 경우도 있을때... 그때는 어떻게하나?
그때는 형 변환 함수!
userInputdata=bool(input('입력:'))
print(userInputdata)
print(type(userInputdata))
weather=input('오늘의 날씨를 입력하세요 :')
print(weather)
오늘의 날씨를 입력하세요 :cool
cool
userName=input('사용자의 이름을 입력하세요 :')
print(userName)
print(type(userName))
사용자의 이름을 입력하세요 :ys
ys
<class 'str'>
wide=int(input('가로 길이 :'))
hight=int(input('세로 길이 :'))
print(wide hight/2)
print(wide hight)
가로 길이 :10
세로 길이 :5
25.0
50
문제풀이까지
이거 처음이 len 함수 하길래 음 안배운것인디 해가지고 넘겼다가
찬찬히 살펴보니
추가 기능 알려주는거였어서 다시 시작한다.. 하하
userMSG=input('메시지입력 :')
print('메시지 문자열 길이 :{}'.format(len(userMSG)))
메시지입력 :Hello python!
메시지 문자열 길이 :13
userMSG=input('메시지입력 :')
print('메시지 문자열 길이 :{}'.format(len(userMSG)))
메시지입력 :안녕하세요, 오늘은 날씨가 좋습니다.
메시지 문자열 길이 :20
문자열 카운팅은 0부터 시작.
= 파=0, 이=1,썬=2
atricle = '파이썬은 1991년 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬이 발표한' \
' 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리터식, 객체지향적,' \
' 동적 타이핑 대화형 언어이다'
find=atricle.find('객체지향')
print('객체지향 문자열 위치 :{}'.format(find))
객체지향 문자열 위치 :75
처음에 할 줄 알긴하는데 소숫점 저 자리까지 어떻게 내놓은거지?
소숫점 컨트롤하는것은 %f로.
소숫점 몇자리 까지 컨트롤하고 싶다 하면 %.(소숫점 자리)f
wide=float(input('가로 길이 입력 :'))
hight=float(input('세로 길이 입력 :'))
tri=wide*hight/2
rac=wide*hight
print('-'*20,'Result','-'*20,'\n삼각형 넓이\t:%.6f'% tri,'\n사각형 넓이\t:%.6f' %rac,
'\n삼각형 넓이\t:%.2f'%tri,'\n사각형 넓이\t:%.2f'%rac,'\n','-'*20)
가로 길이 입력 :7
세로 길이 입력 :5
-------------------- Result --------------------
삼각형 넓이 :17.500000
사각형 넓이 :35.000000
삼각형 넓이 :17.50
사각형 넓이 :35.00
--------------------
또 다음!
😎갑자기 또 파이썬 꿀팁
줄 나눌땐 \n을 쓰는데,
줄나눔안되고 함수로 풀어서 쓰고싶다?
print('3*5=', end='')
print(3*5)
저 end='' 함수가
\n
의 역할을 막아서
print함수의 자동 개행을 막는다. 자동개행이라 함은 함수 끝나고 줄나눔..?
내가 이해하기로는... 포맷 안쓰면 계속 아래로 프린트 함수를 쓰거나, 콤마를 해야하는데 포맷으로 묶고 {}괄호를 쓰면 쭉쭉 쓸 수 있어서 쓰는건가?
흠냐링..
키키 이거 나 예전에 공부해놔서 알고있지롱~
width=float(input('가로 길이 입력:'))
height=float(input('세로 길이 입력:'))
print(f'width : {width}\nheight : {height}\ntriangle : {width*height/2}\nSquare : {height*width}')
print(f'width : {width}, height : {height}\nTriangle : {width*height/2}, Squrare : {width*height}')
print(f'width : {width},\theight\t:\t{height}\nTriangle : {height*width/2},\tSquare\t:\t{width*height}')
엥 근데 마지막 코드는 보이는 거 처럼 줄이 안맞아 ㅠ
포맷 뒤에다 만들어 두고 순차적으로 쓰면 순차적으로 들어감!
그런데 사실 {0}{1}이렇게 암묵적인 순서를 정해둔거라서 뒤에 써놓은 포맷의 순서를 바꾸고 싶다? 하면은
엪어 {}여기를 {1},{0}으로 바꾸면 된다
userName=input('사용자 이름을 입력하세요 :')
userAge=input('사용자 나이를 입력하세요. :')
print('User Name : {}\nUser Age : {}'.format(userName, userAge))
print(f'User Name : {userName}\nUser Age : {userAge}')
print('나의 이름은 {} 이고, 나이는 {}살 입니다. {} 이름은 아버님꼐서 지어주셨습니다.'
.format(userName, userAge, userName))
print('나의 이름은 {0} 이고, 나이는 {1}살 입니다. {0} 이름은 아버님꼐서 지어주셨습니다.'
.format(userName, userAge))
userName=input('사용자 이름을 입력하세요 :')
userAge=int(input('사용자 나이를 입력하세요. :'))
userName='홍길동'
userAge=20
print('User name : %s' % userName)
print('User Age : %d' % userAge)
print('User name : %s, User age : %d' % (userName,userAge))
print('pi:%f'%3.14)
print('pi:%d'%3.14)
저기서 보면 알 수 있듯이, 인풋으로 값을 넣어버리면 다 str 로 인식을 해버리기 때문에, 숫자같은경우는 인풋으로 넣을거면 int나 float 처리를 해줘야하고, 그런게 아니라면 직접 지정을 해서 넣어야 한다.
smeiwidth=int(input('반지름 입력 :'))
pi=float(input('원주율 입력 : '))
print('radius : %.1f'%smeiwidth,'\npi : %f'%pi,
'\nradius : %.1f, pi : %f'%(smeiwidth, pi),
'\nradius : %6f, pi : %f'%(smeiwidth,pi),
'\nradius : %.2f, pi : %.2f'%(smeiwidth,pi))
num1=9
num2=3
print(f'result : {num2+num1}')
fNum1=3.14
fNum2=0.12
print(f'result : {fNum1+fNum2}')
result=fNum1+fNum2
print('result : %.2f'%result)
저기서 000002 보고 실수라 찌끄레기 숫자라그러는데?ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
그래서 소숫점을 지정해서 깔끔하게 하라고 하네잉
num1=9
num2=0.12
print(f'result : {num1+num2}')
result : 9.12
str1='Good'
str2='Morning'
str3=' '
print(f'result : {str1+str3+str2}')
result : Good Morning
print(f'result : {num1+str2}')
TypeError: unsupported operand type(s) for +: 'int' and 'str'
kor=int(input('국어 점수 : '))
eng=int(input('영어 점수 : '))
math=int(input('수학 점수 : '))
print(f'국어 점수 {kor}')
print(f'영어 점수 {eng}')
print(f'수학 점수 {math}')
print(f'합계 {kor+eng+math}')
num1=10
num2=20
print(f'num1 : {num1}')
print(f'num2 : {num2}')
print(f'result : {num1-num2}')
fNum1=3.14
fNum2=0.14
print(f'fNum1 : {fNum1}')
print(f'fNum2 : {fNum2}')
print(f'result : {fNum1-fNum2}')
print('type of result :',type(fNum1-fNum2))
num1=10
fNum1=3.14
print(f'num1 : {num1}')
print(f'fNum1 : {fNum1}')
print(f'result : {num1+fNum1}')
print('type of result :',type(num1+fNum1))
num1 : 10
fNum1 : 3.14
result : 13.14
type of result : <class 'float'>
str1='good'
str2=' '
str3='afternoon'
result=str3-str2-str1
print('result : {}'.format(result))
TypeError: unsupported operand type(s) for -: 'str' and 'str'
parttimeMoney=int(input('알바비 입력 :'))
cardMoney=int(input('카드값 입력 :'))
print(f'partTimeMoney : {parttimeMoney}원'
f'\ncardMoney : {cardMoney}원'
f'\n 남는돈 : {parttimeMoney-cardMoney}원')
radi=float(input('반지름(cm) 입력 : '))
pi=3.14
circleArea=radi*radi*pi
circleRound=2*pi*radi
print('원의 넓이\t: %.0fcm'%circleArea,'\n원 둘레길이\t: %.0fcm'%circleRound,
'\n원의 넓이\t: %.1fcm'%circleArea,'\n원 둘레길이\t: %.1fcm'%circleRound,
'\n원의 넓이\t: %.3fcm'%circleArea,'\n원 둘레길이\t: %.3fcm'%circleRound)
반지름(cm) 입력 : 3
원의 넓이 : 28cm
원 둘레길이 : 19cm
원의 넓이 : 28.3cm
원 둘레길이 : 18.8cm
원의 넓이 : 28.260cm
원 둘레길이 : 18.840cm
userName=input('이름 입력 :')
userMail=input('메일 입력 :')
userID=input('아이디 입력 :')
userPW=input('비밀번호 입력 :')
userForntCode=input('주민번호 앞자리 입력 :')
userLastCode=input('주민번호 뒷자리 입력 :')
userAdress=input('주소 입력 :')
PWstar='*'*len(userPW)
userCode=userForntCode+'-'+userLastCode[0]+('*'*6)
print('-'*20,
f'\n이름 : {userName}'
f'\n메일 : {userMail}'
f'\n아이디 : {userID}'
f'\n비밀번호 : {PWstar}'
f'\n주민번호 : {userCode}'
f'\n주소 : {userAdress}',
'\n','-' * 20)
아우 시부레 저 주민번호조합하는거랑 뒤에 별 붙이는거 때문에 정말 오래걸렸다 ㅠㅠ
tip에 있는 str[0]이게 꼭 앞에 str이라는게 아니라 원하는 변수를 말하는거임!
kg=int(input('체중 입력(g):'))
cm=int(input('신장 입력(cm):'))
weight=kg*0.1
height=cm*0.01
bmi=weight/height*height
print(f'체중:{weight}kg'
f'\n신장:{height}m'
f'\nBMI : {bmi}')
num1=10
num2=20
print('num1 : {}, num2 : {}'.format(num1, num2))
print('num1 : {1}, num2 : {0}'.format(num1, num2))
mid=(input('중간 고사 점수 :'))
fin=(input('기말 고사 점수 :'))
if mid.isdigit() and fin.isdigit():
mid=int(mid)
fin=int(fin)
total=mid+fin
aver=total/2
print(f'총점 : {total}, 평균 :{aver}')
else:
print('잘못 입력 하셨습니다.')
그론데, mid랑 fin에 인풋할 때 형태를 float로 지정해서 넣어보리면 isdigit가 안됨.
엥 근데 str(문자)로 해도 된다?
그럼 int로 하면,,int는 또 안된다 이게 뭐여??????????
lang=input('언어선택(Choose your language):1. 한국어 2. English')
if lang.isdigit():
lang=1
print('1.샌드위치 2.햄버거 3.주스 4.커피 5.아이스크림')
else:
print('1.sandwich 2.Ham 3.juice 4.coffe 5. ice cream')
import datetime
today=datetime.datetime.today()
age=input('나이 입력 :')
if age.isdigit():
lastyear=today.year+100-int(age)
last=100-int(age)
print(f'{lastyear}년({last}년후)에 100살!!')
else:print('잘 못 입력했습니다.')
아오 저 100살 구하는거에서 if 문에서 겁나게 막혔네잉... 힝구 힘드러
2023-06-04 복습 완료
아직 얼레벌레 하는 너낌... ㅠ