게시판
검색 결과: 40
- 1 (current)
- 2
- 3
- 4
- 다음
i는 정수이지만, format()을 호출한 결과는 문자열입니다.
y=format(i,',')
여기서 y는 이미 문자열입니다.
궁금할 땐 type(y) 같은 문장을 넣어서 테스트해보세요.
스크립트 모드일 때는 print(type(y))로 작성하세요.
a=input()
b=a.split(';')
c=[]
for i in b:
i=int(i)
c.append(i)
c.sort(reverse=True)
for i in c:
y=format(i,',')
print('%9s' % y)
코드는 교재에서 배운대로 위에 처럼 짜서 테스는 통과가 되었습니다.
다만 궁금한점은.. 마지막 for문에서 i는 모두 int 객체인데 print할때 '%9s' 로 쓰잖아요..?
%s 는 스트링을 의미하는게 아닌건가요?
저는 '%9d' % format(10000,',') 이 정상적으로 작동되지 않는게 이해가 잘 안가서요..
int는 %d 가 적용되는게 아닌가요??
제가 뭔가 잘못 이해하고 있는걸까요?
아니면 문법이기 때문에 그냥 외워야하는걸까요..??
포럼 상단 오른쪽에 24.5로 검색하면 이전 질문과 답변을 참조할 수 있습니다.
이미 많은 답변이 있고, 질문도 비슷하기 때문에 참조하시면 됩니다.
https://dojang.io/mod/forum/search.php?id=7&search=24.5
for 반복문 안에 y = []이 있으면 계속 y를 초기화하게 됩니다.
이게 의도한 것은 아닐 것 같습니다.
왜 그냥 x.count('the')로 하면 멀쩡히 'the'의 갯수가 뜨는데
y.append로 해서 y식에 넣으려면 안넣어지는 걸까요ㅠㅠ?
That is why, at the, age of six,
>>> words = paragraphs.split()
>>> words
['That', 'is', 'why,', 'at', 'the,', 'age', 'of', 'six,']
if word.strip(',.') == 'the':
count += 1
>>> count
1
>>>
print(word)
That
is
why,
at
the,
age
of
six,
>>>
답답했습니다.
제가 착각했더군요. strip()메서드는 중간 중간의 것들을 제거해주지 않습니다. 다만 입력된 문자열의 양 끝에서만 제거해 줍니다.
'asdf, asdf, adsf.'.strip(',.') 해봐야 중간의 ','들은 없어지지 않아요.
한번에 모두 제거하고 싶으시면,
strip()이 아닌 replace()를 사용하셔야 합니다.
당연한 문제를 혼자 고민한거 맞죠?
문의한 코드는 삭제합니다.
이렇게 코딩을 했습니다. 결과는 문제 없이 나오는데 마지막에 호기심으로 print(words)를 했더니 strip이 전혀 적용되지 않은 체로 출력이 되었습니다. i=i.strip() 이걸로 변수에 새로 저장했다고 생각했는데 리스트를 수정한 것이 아니기 때문에 바뀌지 않은 건가요? 이유를 알고 싶습니다...
(도장_ 관리자님이 수정함 - 원문 제출일: 수요일, 17 11월 2021, 4:33 오후)
for i in words:
i=i.strip(",'-.")
words의 값은 바꾼 적이 없습니다.
words의 값을 꺼내서 i에 복사했고,
i.strip으로 수정한 값도 i에 저장했습니다.
i를 출력하면 바뀐 값이 출력되고
words는 원본입니다.
순차적으로 하나씩 학습하는 게 좋습니다. 내가 아는 거라고 건너뛰지 않고 순차적으로 학습해서 기초가 되는 개념을 확실하게 하는 게 좋습니다.
구멍 뚫린 치즈처럼 지식을 쌓는 건 장기적으로 결코 좋지 않습니다. 누구나 달리기는 할 수 있지만, 올바른 달리기 자세를 배우지 않으면 결코 오래할 수 없습니다. 대다수는 달리기를 오래하지 않기 때문에 문제가 되지 않습니다.
달리기를 할 때 내 발목은 내전, 중립, 외전 중에 어떤 유형인가, 발바닥이 땅에 닿는 순서, 무릎 관절과 근력의 문제, 상체 자세, 시선의 각도 등 제대로 배워야 하는 기초가 많습니다.
- 1 (current)
- 2
- 3
- 4
- 다음