안녕하세요 직접 해보다가 질문드립니다. i = 0 while True : print(i,"번째 반복하는 중") i += 1 input_text = input("종료하시겠습니까?(Y/N): ") if input_text == "y": print("반복을 종료합니다.") break 라고 했을 땐 소문자 y 만을 쓴다고 했을 때 정상적으로 실행되었습니다. 그런데 i = 0 while True : print(i,"번째 반복하는 중") i += 1 input_text = input("종료하시겠습니까?(Y/N): ") if input_text == "y" or "Y": print("반복을 종료합니다.") break 처럼 if input_text == "y" or "Y": 여기에 or 연산자를 사용해보았는데 어떤 것을 입력하여도 그냥 반복을 종료하였습니다. 왜 or 연산자를 사용할 수 없는지 모르겠습니다 ㅠㅠ 알려주신다면 감사하겠습니다.
프로그래밍 언어의 or과 and는 영어와 다르게 → 양쪽에 "불 자료형"이 와야 합니다. 현재 코드는 input_text == "y" or "Y"이므로 왼쪽은 불 자료형(== 연산의 결과가 불 자료형)이지만 오른쪽은 "Y"라는 문자열입니다. . 그래서 input_text == "y" or input_text == "Y"로 써주셔야 합니다[대학교 1학년 기본 프로그래밍 언어 중간고사 때 자주 나오는 문제입니다!]. . 파이썬은 in 연산자가 있어서 input_text in "Yy" 같은 형태로 더 많이 씁니다!
선생님 질문 남깁니다! # 반복 변수를 기반으로 반복하기 i = 0 while i < 10: i += 1 print("{}번째 반복입니다.".format(i)) 여기서 i += 1 을 print 앞으로 보내니까 1번째 반복입니다. ... 10번째 반복입니다. 이런 순서로 출력이 되는데 왜 그런걸까요? 항상 잘 보고 있습니다! 최근 선생님 출간 소식으로 인해 굉장히 많은 힘을 받았네요 :-) 항상 응원합니다! 답변해주시면 감사하겠습니다.
#변수를 선언합니다. numbers=[5, 15, 6, 20, 7, 25] #반복을 돌립니다. for number in numbers: #number가 10보다 작으면 다음 반복으로 넘어갑니다. if number < 10: continue #출력합니다. print(number) 이렇게 입력했을 때 15,20,25를 print해야 하는 거 같은데 저는 25만 print를 하네요.. 왜 그럴까요 선생님 ㅠㅠ
03:22 continue 키워드는 현재 '반복'을 생략한다고 해서, numbers = [5, 15, 6, 7, 25] for number in numbers: print(1, end =" ") if number < 10: continue print(number) 위와 같이 코드를 짰을 때, for '반복'문, if '조건'문이기 때문에 1 15 1 25 를 기대했는데, 이와 다르게 1 1 15 1 1 1 25 가 나오더라구요. continue가 '반복'을 생략한다기보다, while True: 처럼 끝에 ":"가 붙는 박스를 생략한다고 생각하면 될까요?
반복을 생략하는 것이 맞습니다. 첫 번째 print 함수로 출력한 이후에 continue를 실행하시므로 첫 번째 print 함수는 그냥 계속 실행될 뿐이며, continue에 의해 현재 반복이 멈추고 다음 반복으로 넘어가므로 10 초과의 숫자만 추가로 출력되는 것입니다.
안녕하세요 강의 너무 잘보고 있습니다. 너무 쉬운 질문을 드리는게 아닌가 싶네요.. ㅠㅠ if input_text in ["Y", "y"]: 이 코드에서 해석을 하면 [ ]안에 input_text 가 들어가면이라고 해석이 되는데 in 뒤쪽은 더 큰 범위에 있는 코드가 와야하는거 아닌가요? input_text는 무한대로 제가 입력을 할 수 있으니까 큰 범위에 속한거 아닌가하는 제 생각입니다. 그래서 if ["Y", "y"] in input_text in 으로 코드를 쳐서 결과를 확인했는데 에러가 뜨더라고요. 이 부분은 무작정 외우게 되면 계속 헷갈릴거 같아서 질문드립니다 ㅠㅠ
"앞에는 문자열이고 뒤에는 리스트이니까 = 리스트 내부에 문자열이 있냐"로 동작할 뿐입니다. 문자열이 엄청나게 긴게 오면, 그냥 리스트 내부에 그 문자열이 없으니까 False가 뜰 뿐입니다. 질문은 주시면 다른 분들도 쭉 봐보면서 "아 그러네 이렇게 생각할 수도 있네, 그러네 근데 왜 이건 안 되는거지?"라고 생각하게 만들 수 있는 공부거리가 되어서 강의를 더 풍성하게 만드는데 도움이 되므로, 질문 하시는 것은 걱정 안 해주셔도 될 것 같습니다 'ㅁ' ...!
i = 0 while True : print("{}번째 반복문입니다.".format(i)) i = i + 1 input_text = input("반복을 종료하시겠습니까?(y): ") if input_text in ["Y", "y"] : print("반복을 종료합니다.") break while_break.py", line 11 break ^ SyntaxError: 'break' outside loop 브레이크 루프 범위를 벗어났다는데 왜 그런걸까요??
@@윤인성 선생님~ 빠르고 정확한 답글 감사합니다.^^ 그런데 혼공파 교재 185p. 직접해보는 손코딩 따라한건데 그 예제에 break가 if문 밑에, 코딩 맨 마지막에 있더라구요 제가 뭘 잘 모르고 있는걸 까요??;;; 책이랑 동영상 강의 열심히 따라하고 있지만 아직 코딩초보라 헤매고 있습니다. ㅎㅎㅎㅎ
안녕하세요 ! 매일 좋은 강의 잘 듣고 있습니다 ㅎㅎ 저도 continue 키워드가 익숙지 않아서 조금 헷갈려서요.. 혹시 pass 개념으로 생각해도 될까요? numbers = [5, 15, 6, 20, 7, 25] for number in numbers: if number < 10: continue print(number) 이 코드에서, number가 10보다 작으면 다음 코드인 print로 넘어가지 않고 그냥 pass한다는 뜻이라서요..?
현재 설치되어 있는 백신 등으로 인해서 백신이 다른 프로그램이 터미널을 실행하는 것을 막는 것입니다. 무슨 프로그램이 그걸 막는지 사실 찾기가 힘들다보니, 이런 경우에는 비주얼 스튜디오의 터미널 대신 그냥 shift 마우스 오른쪽 클릭해서 파워쉘을 실행해 사용하는 방법 등 다른 방법을 사용해주세요!
선생님, continue 와 pass 차이를 정확하게 인지하지 못하였습니다. pass는 아무 일도 하지 않고, 그냥 지나가는 것으로 인지하였으나, 아래와 같이 문장을 작성하였을 때, 3초를 기다리고 print()를 실행합니다. 즉, 아래와 같은 문장에서 pass는 continue처럼 while문을 True일 때까지 실행하는 것으로 보입니다.. 처음 = time.time() while 처음 + 3 > time.time(): pass print("3초가 지났습니다") 제가 놓치고 있는 부분을 알려주시면 감사드리겠습니다. :-)
while True: input_text=input(">종료하겠습니까?(y)") if "Y" or "y" or "ㅛ" in input_text : print("반복을 종료합니다.") break 이렇게 코드를 짜보았는데요 s나 a같은 버튼을 입력해도 반복이 종료된다는 메시지가 뜨네요 설명 부탁드려도 될까요?
Y" or "y" or "ㅛ" in input_text라는 형태의 문장은 프로그래밍 언어에서는 사용할 수 없습니다. 대학교 1-2학년 때 프로그래밍 시험을 보면 함정으로 많이 파는 부분입니다. or로 연결하고 싶으신 경우에는 ("Y" in input_text) or ("y" in input_text) or ("ㅛ" in input_text) 형태로 사용해주셔야 합니다. 내부적인 원리는 다음과 같은데 파이썬은 컴파일러를 만들 때 사용하거나 하지는 않으므로 "그냥 그렇구나 회화 문장이 이러니까 형식을 외워야겠다"하고 그냥 외우는 것을 추천드립니다. """ 1. 연산자는 우선 순위를 가지며, 한 번에 하나씩 이루어진다. 2. 따라서 Y" or "y" or "ㅛ" in input_text는 (("Y" or "y") or ("ㅛ" in input_text)) 형태로 실행된다. 3. 논리 연산자 or은 피연산자 중에 하나면 결과가 True라면 전체가 True가 나오므로 4. 왼쪽 피연산자를 불로 변환했는데 True면 오른쪽 피연산자를 보지도 않는다. 5. 따라서 - ((True or "y") or ("ㅛ" in input_text)) # 왼쪽 것 확인(빈 문자열이 아니므로 True) - (True or ("ㅛ" in input_text)) # 왼쪽 것이 "Y"로 True로 변환되니 "y"는 변환하지도 않고 그냥 전체를 True로 변경 - True # 왼쪽 것이 True이므로 오른쪽 것을 추가로 연산자지도 않고 True로 결과를냄 """
HUNGYUN 환경을 정확하게 몰라서 이야기를 드릴 수 없습니다. 어떤 오류가 뜨는지를 함께 올려주세요. 윈도우 구버전을 쓰고 계실 경우는 cls로 지우셔야 합니다(다만 일단 clear와 cls는 그렇게 실질적으로 자주 사용하는 명령어는 아니라서[화면을 지울 일 자체가 없음], 그냥 무시하셔도 큰 문제 없습니다).
i = 0 while True: i += 1 print("{}번째 시도입니다.".format(i)) input("종료를 원하시면 이름을 입력하세요>>>") if i > 4: print(" 이름을 잊어버리셨나요?") input("당신의 이름은 무엇인가요>>>") if input in ["양지윤"]: print("다시 만나서 반갑습니다. 양지윤씨") else: print(" 자동으로 신고처리가 되었습니다.") break 위에 if input in ["양지윤"]: 여기서 양지윤을 입력해도 "다시 만나서 반갑습니다~" 구문이 실행이 안되는데 어디서 잘못된걸까요???ㅠㅠ 양지윤을 입력해도 "자동으로 신고처리가 되었습니다"가 실행되니...ㅠㅠㅠ
@@윤인성 안녕하세요. 선생님! 댓글 작성자님께서 올리신 예문을 조금 응용해봤는데 이렇게 만들어도 되는지 궁금합니다! i = 0 while True: i += 1 print("{}번째 시도입니다.".format(i)) name = input("종료를 원하시면 이름을 입력하세요> ") if name in ["둘리"]: print("프로그램이 안전하게 종료되었습니다.") break elif i >= 3: print(" 이름을 잊어버리셨나요?") name1 = input("당신의 이름은 무엇인가요> ") if name1 in ["둘리"]: print("다시 만나서 반갑습니다. 둘리군") break else: print(" 자동으로 신고처리가 되었습니다.") break 1. 우선 3번째 시도까지 입력을 시도해보고 이름을 ("둘리") 정확히 입력했으면 프로그램이 종료되는 버전을 추가했습니다. 2. 그리고 네번째 시도부터 질문 내용을 변경해 재확인하는 단계인데 이때 elif 함수를 사용해봤습니다. 만약 "둘리"를 제대로 입력했다면 "다시 만나서 반갑습니다"가 출력이 되고, 또 틀릴 경우엔 자동으로 신고처리가 되는 순서입니다. 여기서 'if 함수, break 키워드, 새로운 name1 지정' 사용이 적절한지 궁금합니다.!!
강의 잘듣고 있습니다. 쉬운강의 감사해요~
컴퓨터 배치를 바꾸셨다고 하셔서 여쭤보는데 전에 영상에서 보였던 그 잘자던 댕댕이는 잘 있나요? ㅋㅋㅋ 그이후로 영상에서 본적이 없는것 같아서요 ^^
넵! 잘 있습니다!
추가로 이제 2마리가 되었어요!!
@@윤인성 오 좋은 소식 감사해요!
감사합니다.
진지한 강의 속에 '코드를 상콤하게 저장하고' 실행하니 넘나 코딩에 흥미가 생기네요 ㅋㅋ!!! 강의 잘 보고 있어요! 감사합니다!
Thanks
안녕하세요 직접 해보다가 질문드립니다.
i = 0
while True :
print(i,"번째 반복하는 중")
i += 1
input_text = input("종료하시겠습니까?(Y/N): ")
if input_text == "y":
print("반복을 종료합니다.")
break
라고 했을 땐 소문자 y 만을 쓴다고 했을 때 정상적으로 실행되었습니다.
그런데
i = 0
while True :
print(i,"번째 반복하는 중")
i += 1
input_text = input("종료하시겠습니까?(Y/N): ")
if input_text == "y" or "Y":
print("반복을 종료합니다.")
break
처럼 if input_text == "y" or "Y": 여기에 or 연산자를 사용해보았는데 어떤 것을 입력하여도 그냥 반복을 종료하였습니다. 왜 or 연산자를 사용할 수 없는지 모르겠습니다 ㅠㅠ 알려주신다면 감사하겠습니다.
프로그래밍 언어의 or과 and는 영어와 다르게
→ 양쪽에 "불 자료형"이 와야 합니다.
현재 코드는 input_text == "y" or "Y"이므로
왼쪽은 불 자료형(== 연산의 결과가 불 자료형)이지만 오른쪽은 "Y"라는 문자열입니다.
.
그래서
input_text == "y" or input_text == "Y"로 써주셔야 합니다[대학교 1학년 기본 프로그래밍 언어 중간고사 때 자주 나오는 문제입니다!].
.
파이썬은 in 연산자가 있어서
input_text in "Yy" 같은 형태로 더 많이 씁니다!
@@윤인성 너무 감사합니다!!
선생님 질문 남깁니다!
# 반복 변수를 기반으로 반복하기
i = 0
while i < 10:
i += 1
print("{}번째 반복입니다.".format(i))
여기서 i += 1 을 print 앞으로 보내니까
1번째 반복입니다.
...
10번째 반복입니다.
이런 순서로 출력이 되는데 왜 그런걸까요?
항상 잘 보고 있습니다!
최근 선생님 출간 소식으로 인해 굉장히 많은 힘을 받았네요 :-)
항상 응원합니다!
답변해주시면 감사하겠습니다.
프로그램은 순서대로 진행됩니다! 따라서
반복문 진입 시점에는 i에
0-1-2-3-4-5-6-7-8-9가 들어 있어서
출력이 먼저 되면
0-1-2-3-4-5-6-7-8-9를 출력할 것이고
출력 전에 1을 더하면
1-2-3-4-5-6-7-8-9-10를 출력합니다!
어쨌거나 출첵~
#변수를 선언합니다.
numbers=[5, 15, 6, 20, 7, 25]
#반복을 돌립니다.
for number in numbers:
#number가 10보다 작으면 다음 반복으로 넘어갑니다.
if number < 10:
continue
#출력합니다.
print(number)
이렇게 입력했을 때 15,20,25를 print해야 하는 거 같은데 저는 25만 print를 하네요.. 왜 그럴까요 선생님 ㅠㅠ
마지막 print 앞에 들여쓰기를 넣어서 for 반복문 안으로 넣어주세요!
@@윤인성 아! 그렇군요 감사합니다!
매 강의마다, 집 배경이나 가구들, 소품들이 조금씩 바뀌는걸 보는것도 하나의 재미인것 같아요...^^
오늘은 바비인형이 보여서 ㅎㅎ 신기합니다..^^
예전에 사진 찍는 것을 배울 때, 찍을 대상이 없어서 구매해봤던 구체 관절 인형들입니다...!
if input_text in ["Y","y"] 가 아니라 if ["Y","y"] in input_text 아닌가요? 그래야지 인풋텍스트라는 변수안에 y또는 Y가 포함되어야 한다는 뜻이 돼는거 아닌가요?
"🥕 in [🍏,🥕]?"로 생각하시면 될 것 같습니다!
input_text가 "Y"냐 "y"냐를 보는 곳입니다.
03:22 continue 키워드는 현재 '반복'을 생략한다고 해서,
numbers = [5, 15, 6, 7, 25]
for number in numbers:
print(1, end =" ")
if number < 10:
continue
print(number)
위와 같이 코드를 짰을 때, for '반복'문, if '조건'문이기 때문에
1 15
1 25
를 기대했는데, 이와 다르게
1 1 15
1 1 1 25 가 나오더라구요.
continue가 '반복'을 생략한다기보다,
while True: 처럼 끝에 ":"가 붙는 박스를 생략한다고 생각하면 될까요?
반복을 생략하는 것이 맞습니다.
첫 번째 print 함수로 출력한 이후에 continue를 실행하시므로 첫 번째 print 함수는 그냥 계속 실행될 뿐이며, continue에 의해 현재 반복이 멈추고 다음 반복으로 넘어가므로 10 초과의 숫자만 추가로 출력되는 것입니다.
@@윤인성 continue를 만나기 전까지는 정상적으로 실행되고, continue를 만난 그 뒤를 생략하고 다음 반복문으로 넘어가는 거군요?
@@shgo5904 넵!
친구에게 파이썬 공부 책으로 선물했습니다. 좋은 강의 감사합니다.
감사합니다 'ㅁ' ...!!
선생님 대체 얼마나 동안이신거에요,,,, 10년 개발자요,,,? 저는 쌤이 20대에 성공한 목소리 좋은 천재 컴공과 과대느낌으로 강의 수강하고있었는데....
초등학교 5학년 때인가 대학생들 과제해주면서 돈을 벌기 시작했고 + 취직을 중학교 2학년 때 했고 + 책을 대학교 1학년 때 냈고 + 지금은 (만으로) 29살(한 살이라도 줄여보겠다는 노력)입니다!
@@윤인성 와 중학교 2학년 때 취직을요..?? 선생님 대단하시네요..멋있습니다
안녕하세요 강의 너무 잘보고 있습니다.
너무 쉬운 질문을 드리는게 아닌가 싶네요.. ㅠㅠ
if input_text in ["Y", "y"]:
이 코드에서 해석을 하면 [ ]안에 input_text 가 들어가면이라고 해석이 되는데
in 뒤쪽은 더 큰 범위에 있는 코드가 와야하는거 아닌가요? input_text는 무한대로 제가 입력을 할 수 있으니까 큰 범위에 속한거 아닌가하는 제 생각입니다. 그래서 if ["Y", "y"] in input_text in 으로 코드를 쳐서 결과를 확인했는데 에러가 뜨더라고요. 이 부분은 무작정 외우게 되면 계속 헷갈릴거 같아서 질문드립니다 ㅠㅠ
"앞에는 문자열이고 뒤에는 리스트이니까 = 리스트 내부에 문자열이 있냐"로 동작할 뿐입니다.
문자열이 엄청나게 긴게 오면, 그냥 리스트 내부에 그 문자열이 없으니까 False가 뜰 뿐입니다.
질문은 주시면 다른 분들도 쭉 봐보면서 "아 그러네 이렇게 생각할 수도 있네, 그러네 근데 왜 이건 안 되는거지?"라고 생각하게 만들 수 있는 공부거리가 되어서 강의를 더 풍성하게 만드는데 도움이 되므로, 질문 하시는 것은 걱정 안 해주셔도 될 것 같습니다 'ㅁ' ...!
@@윤인성 아하.. 이해됐습니다! 답변 감사합니다 :)
i = 0
while True :
print("{}번째 반복문입니다.".format(i))
i = i + 1
input_text = input("반복을 종료하시겠습니까?(y): ")
if input_text in ["Y", "y"] :
print("반복을 종료합니다.")
break
while_break.py", line 11
break
^
SyntaxError: 'break' outside loop
브레이크 루프 범위를 벗어났다는데 왜 그런걸까요??
신텍스 에러는 코드가 실행되지 않는 문법적 오류입니다.
break는 반복문 안에 쓰셔야 하는데, if 조건문 안에 쓰셔서 오류가 발생한 것입니다. 전체적으로 들여쓰기 단계가 잘못되어있으니 들여쓰기 단계를 확인해주세요!
@@윤인성 선생님~ 빠르고 정확한 답글 감사합니다.^^ 그런데 혼공파 교재 185p. 직접해보는 손코딩 따라한건데 그 예제에 break가 if문 밑에, 코딩 맨 마지막에 있더라구요 제가 뭘 잘 모르고 있는걸 까요??;;; 책이랑 동영상 강의 열심히 따라하고 있지만 아직 코딩초보라 헤매고 있습니다. ㅎㅎㅎㅎ
@@파파도터 들여쓰기를 맞춰주세요!! 185페이지처럼 들여쓰기를 넣어주세요.
@@윤인성 네~~ 감사합니다~~^^
안녕하세요! 계속해서 공부하다보니 헷갈리는 지점이 생겼습니다.
코드를 작성할 때 어떨 때는 들여쓰기하고, 어떨 때는 안하는데, 들여쓰기 하는 경우와 들여쓰기를 하지 않는 경우는 어떤 경우인가요?
복합 구문이라고 부르는 if 조건문, for 반복문, while 반복문, 함수 구문 등의 정해진 문법을 사용할 때 들여쓰기를 합니다. 이외의 경우에는 들여쓰기를 이유 없이 넣지 않습니다.
input_text = input in ["y", "Y"]에서 대괄호 안이 이해가 안 돼요
"어떻게 해서 어떤 결과가 나온다고 생각했는데, 어떻게 나오길래 이해가 안 된다"를 조금 더 명확하게 설명해주실 수 있을까요?
@@윤인성 영상을 다시 보니 이해 됐습니다. 갑사합니다
교재185p 에서 8행에 있는 i=i+1 코드가 왜 저 위치에 쓰이는지 잘 모르겠습니다.. 종료가 안되면 8행코드가 다시 실행이 되어 그 i값을 다시 위에있는7행에 대입을 하는건가요? 코드 순서는 위에서 아래로 내려오는거라 배운것같아서요..어렵네요ㅠㅠㅠ
코드는 위에서 아래로만 내려갑니다.
i = i + 1을 실행하고 나면 그 아래 줄로 쭉 내려간 뒤
[반복문 끝에 도달했으므로] 다시 05번째 줄로 이동합니다!
sum all 등을 변수로 지정하면 보라색? 이 되던데 이건 왜 그런걸까요? 보라색이어도 변수로 사용할 수 있는건가요?
사용은 할 수 있지만 파이썬에서 기본적으로 제공하는 변수와 함수의 이름이라 다른 이름을 사용하는 것이 좋습니다.
절대 포기하지 않겠습니다!
강의 감사합니다.^^
수고 하셨습니다.
좋은 하루 되세요^^
안녕하세요 ! 매일 좋은 강의 잘 듣고 있습니다 ㅎㅎ
저도 continue 키워드가 익숙지 않아서 조금 헷갈려서요..
혹시 pass 개념으로 생각해도 될까요?
numbers = [5, 15, 6, 20, 7, 25]
for number in numbers:
if number < 10:
continue
print(number)
이 코드에서, number가 10보다 작으면 다음 코드인 print로 넘어가지 않고 그냥 pass한다는 뜻이라서요..?
다음 반복 단계로 pass(넘어간다)로 생각하면 개념은 맞습니다 'ㅁ' ...! 다만 pass라는 키워드가 또 따로 있다보니, 용어가 혼동되지 않을 수 있게 continue는 continue로 기억해주시면 좋을 것 같습니다...!
@@윤인성 네 ! 감사합니다 ㅎㅎ
break 손코딩 문제에서 if input_text in ["y","Y"]: 꼭 괄호를 써야지 실행이 되나요?
if input_text in "y": 이렇게 괄호 없이 써도 똑같이 실행은 되던데
괄호를 넣어야되는 이유를 말씀해주시면 감사하겠습니다.
y 또는 Y를 입력한 경우를 나타내기 위해서입니다.
지금 입력해주신 코드의 경우는 대문자 Y를 입력하는 경우 조건문 내부로 들어가지 않습니다.
안녕하세요! 비쥬얼 스튜디오를 키고 터미널을 열라고 하면 "터미널 프로세스를 시작하지 못했습니다.A native exception occurred during launch (Unable to start terminal process: CreateProcess failled)."라는 문구가 뜨면서 터미널이 안열립니다 ㅠㅠ 이거는 어떻게 해결하나요??
현재 설치되어 있는 백신 등으로 인해서 백신이 다른 프로그램이 터미널을 실행하는 것을 막는 것입니다. 무슨 프로그램이 그걸 막는지 사실 찾기가 힘들다보니, 이런 경우에는 비주얼 스튜디오의 터미널 대신 그냥 shift 마우스 오른쪽 클릭해서 파워쉘을 실행해 사용하는 방법 등 다른 방법을 사용해주세요!
선생님, continue 와 pass 차이를 정확하게 인지하지 못하였습니다.
pass는 아무 일도 하지 않고, 그냥 지나가는 것으로 인지하였으나,
아래와 같이 문장을 작성하였을 때, 3초를 기다리고 print()를 실행합니다.
즉, 아래와 같은 문장에서 pass는 continue처럼 while문을 True일 때까지 실행하는 것으로 보입니다..
처음 = time.time()
while 처음 + 3 > time.time():
pass
print("3초가 지났습니다")
제가 놓치고 있는 부분을 알려주시면 감사드리겠습니다. :-)
현재 주신 코드에서는 당연히 차이가 없습니다.
pass는 블록을 만들어야 하는데, 놓을 것이 없을 때 임의로 배치하는 기능이고, continue는 반복문에서 다음 반복으로 넘어가는 기능입니다.
continue를 써서 10 이상인 것들을 출력하려고 할 때는, number < 10 이라고 써야 10 이상의 것들이 출력이 되는데, 왜 continue를 쓰지 않고 10 이상의 수를 출력해내려면 반대 기호인 number >= 10 이라고 적어야 하는 건지 궁금합니다.
어떤 질문인지 정확하게 모르겠는데, continue는 현재 반복을 무시하게 만드는 것입니다. 반대 형태로 실행하려면 그냥 반대 형태로 코드를 작성할 뿐입니다.
소스코드 break.py 11행 의미가 input_text가 y 또는 Y에 있다면으로 해석되는거 같은데 그러면 input_text 와 y,Y 자리가 서로 바껴야하지않나요 이해가 잘안되네요 ㅠ
영어의 위치 관련 전치사는 한국어와 순서가 반대입니다!
- 한국어: 책상 __위의__ 곰인형
- 영어: 곰인형 __on__ 책상
- 한국어: 사막 __안의__ 오아시스
- 영어: 오아시스 __in__ 사막
이라서 이걸 생각해주시면서 읽어주시면 좋을 것 같습니다!
while True:
input_text=input(">종료하겠습니까?(y)")
if "Y" or "y" or "ㅛ" in input_text :
print("반복을 종료합니다.")
break
이렇게 코드를 짜보았는데요
s나 a같은 버튼을 입력해도 반복이 종료된다는 메시지가 뜨네요
설명 부탁드려도 될까요?
Y" or "y" or "ㅛ" in input_text라는 형태의 문장은
프로그래밍 언어에서는 사용할 수 없습니다.
대학교 1-2학년 때 프로그래밍 시험을 보면 함정으로 많이 파는 부분입니다.
or로 연결하고 싶으신 경우에는
("Y" in input_text) or ("y" in input_text) or ("ㅛ" in input_text) 형태로 사용해주셔야 합니다.
내부적인 원리는 다음과 같은데
파이썬은 컴파일러를 만들 때 사용하거나 하지는 않으므로
"그냥 그렇구나 회화 문장이 이러니까 형식을 외워야겠다"하고 그냥 외우는 것을 추천드립니다.
"""
1. 연산자는 우선 순위를 가지며, 한 번에 하나씩 이루어진다.
2. 따라서 Y" or "y" or "ㅛ" in input_text는
(("Y" or "y") or ("ㅛ" in input_text)) 형태로 실행된다.
3. 논리 연산자 or은 피연산자 중에 하나면 결과가 True라면 전체가 True가 나오므로
4. 왼쪽 피연산자를 불로 변환했는데 True면 오른쪽 피연산자를 보지도 않는다.
5. 따라서
- ((True or "y") or ("ㅛ" in input_text)) # 왼쪽 것 확인(빈 문자열이 아니므로 True)
- (True or ("ㅛ" in input_text)) # 왼쪽 것이 "Y"로 True로 변환되니 "y"는 변환하지도 않고 그냥 전체를 True로 변경
- True # 왼쪽 것이 True이므로 오른쪽 것을 추가로 연산자지도 않고 True로 결과를냄
"""
clear 을 여전히 사용 못하고 있습니다. 어디에 쓰든 지 간에 에러만 뜨는데 어떻게 사용해야하나요 ...?
HUNGYUN 환경을 정확하게 몰라서 이야기를 드릴 수 없습니다. 어떤 오류가 뜨는지를 함께 올려주세요. 윈도우 구버전을 쓰고 계실 경우는 cls로 지우셔야 합니다(다만 일단 clear와 cls는 그렇게 실질적으로 자주 사용하는 명령어는 아니라서[화면을 지울 일 자체가 없음], 그냥 무시하셔도 큰 문제 없습니다).
@@윤인성 우와우와우오아우오아우오아 감사합니다!!~~~~ 행복하십시송~~!!
=을 하나만 쓰는 경우랑, 두개를 쓰는 경우가 너무 헷갈리는데.. 어떻게 구분할 수 있을까요?
=는 할당이고
==는 일치연산자입니다. 불을 만들어야 할 때 씁니다.
i = 0
while True:
i += 1
print("{}번째 시도입니다.".format(i))
input("종료를 원하시면 이름을 입력하세요>>>")
if i > 4:
print("
이름을 잊어버리셨나요?")
input("당신의 이름은 무엇인가요>>>")
if input in ["양지윤"]:
print("다시 만나서 반갑습니다. 양지윤씨")
else:
print("
자동으로 신고처리가 되었습니다.")
break
위에 if input in ["양지윤"]: 여기서 양지윤을 입력해도 "다시 만나서 반갑습니다~" 구문이 실행이 안되는데 어디서 잘못된걸까요???ㅠㅠ 양지윤을 입력해도 "자동으로 신고처리가 되었습니다"가 실행되니...ㅠㅠㅠ
name = input("당신의 이름은 무엇인가요>>>")
if name in ["양지윤"]:
형태로 작성해주셔야 합니다. input 자체는 그냥 함수의 이름입니다...!
@@윤인성 앗 그랬군요!!
@@윤인성 안녕하세요. 선생님!
댓글 작성자님께서 올리신 예문을 조금 응용해봤는데 이렇게 만들어도 되는지 궁금합니다!
i = 0
while True:
i += 1
print("{}번째 시도입니다.".format(i))
name = input("종료를 원하시면 이름을 입력하세요> ")
if name in ["둘리"]:
print("프로그램이 안전하게 종료되었습니다.")
break
elif i >= 3:
print("
이름을 잊어버리셨나요?")
name1 = input("당신의 이름은 무엇인가요> ")
if name1 in ["둘리"]:
print("다시 만나서 반갑습니다. 둘리군")
break
else:
print("
자동으로 신고처리가 되었습니다.")
break
1. 우선 3번째 시도까지 입력을 시도해보고 이름을 ("둘리") 정확히 입력했으면 프로그램이 종료되는 버전을 추가했습니다.
2. 그리고 네번째 시도부터 질문 내용을 변경해 재확인하는 단계인데 이때 elif 함수를 사용해봤습니다. 만약 "둘리"를 제대로 입력했다면 "다시 만나서 반갑습니다"가 출력이 되고, 또 틀릴 경우엔 자동으로 신고처리가 되는 순서입니다.
여기서 'if 함수, break 키워드, 새로운 name1 지정' 사용이 적절한지 궁금합니다.!!
@@seokmin7264 넵 전체적으로 문제 없습니다!!
이제 전체 강의 중 50%를 들어가네요 ㅎㅎㅎ
감사합니다.
continue 키워드에서 왜 continue를 사용하면 뒤에 else를 사용 안하고 pass를 사용하면 뒤에 else를 사용하나요?
continue와 pass 때문보다는 조건이 다릅니다! 조건부분을 확인해주세요!
@@윤인성 어떤 조건을 보면 되나요??
@@west2790 해당 부분 5:40 부터에 있는 if 조건문 뒤의 조건을 확인해보세요! 조건이 반대이므로 else 쪽에 코드를 입력할 뿐입니다!
@@윤인성 네 감사합니다!