Pythonメンター-01

5043 ワード

第一題


質問する

1. 멘토가 좋아하는 프링글스 스윗 마요를 만드는 인공지능 오븐을 개발하려고 한다.
적당한 양의 감자를 오븐에 넣으면 인공지능 오븐은 프링글스가 만들어지는 시각을 알려준다. 프링글스 만들기를 시작하는 시각과 오븐에 구워 완성을 하는데 필요하는 시간이 초 단위로 주어졌을 때, 프링글스 만들기가 끝나는 시각을 계산하는 프로그램을 작성하세요
입력
1. 첫째 줄에는 현재 시각이 나온다 ( (시) 0 <= A <= 23, (분) 0 <= B <= 59, (초) 0 <= C <= 59)
2. 둘째 줄에는 요리하는데 필요한 시간 (0<=D<=500000) 가 초 단위로 주어진다.
출력
첫째 줄에 종료되는 시각의 시, 분, 초를 공백을 사이에 두고 출력
  • 具泰宇さん
  • startHours, startMin, startSec = map(int,input().split())
    D = int(input())
    
    startHours = (startHours * 3600 + startMin * 60 + startSec + D) // 3600 % 24
    startMin = (startMin + (startSec + D) // 60) %60
    startSec = (startSec + D) % 60
    
    print(startHours, startMin, startSec)
    あまりにも短い符号化はよくないが、泰宇のコードの可読性は良い.また、mapを使うのもとてもいいです.なお、泰宇のコードは、入力が60分を超える場合や60秒を超える場合の処理です.GOOD! しかし、23時でも入力できるので、私たちはまだこの点を考えることができると思います.
    (地図が何かわからなければ
    地図は何ですか。
    上のリンクを参照してください.しかし、理解できない点があれば、指導者に相談してください.私はあなたに直接教えます!
    変数に名前を付ける場合(StartHours、StartMin、StartSecなど)、開発者の意図をプログラムで明確にすることを考慮できます.他の変数も[ex>4行目のstartHours(endHours)、3行目のD(processtTime)]名を統一して考えると、より良いコードになるはずです.
    これまでの問題は単純な符号化であったため、変数名を考慮することなく理解できたが、事前に練習することをお勧めする.
    参照用にリンクを追加します.
    変数名はどうやってつけますか?
    これは泰宇のコードに基づいて修正されたコードです.
    1.24時間以上の処理
    2.変数名の変更
    startHours, startMin, startSec = map(int,input().split())
    processTime = int(input())
    
    completeHours = (startHours * 3600 + startMin * 60 + startSec + processTime) // 3600 % 24
    # 23 59 59 / 1 => 24 0 0 => 0 0 0
    completeMin = (startMin + (startSec + processTime) // 60) %60
    completeSec = (startSec + processTime) % 60
    
    print(startHours, startMin, startSec)
  • 李勇賢
  • hour , minu , seco = input().split()
    hour = int(hour)
    minu = int(minu)
    seco = int(seco)
    while True:
        bakeTime = int(input())
        if(0 <= bakeTime <= 500000):
            break
        else:
            print("값이 너무 큽니다, 500000 이하로 입력해주세요.")
    
    allTime = hour*3600 + minu*60 + seco + bakeTime
    allTime = allTime % 86400
    hour, allTime = int(allTime/3600), int(allTime%3600)
    minu, allTime = int(allTime/60), int(allTime%60)
    seco = int(allTime)
    
    print(hour, minu, seco)
    異常処理がとてもいいです!これは符号化テストでよく見られる異常処理ではないが,教授たちが好む優れた課題でよく見られる良い異常処理である.泰宇も変数名を考えていたので楽しかったですあと1日が過ぎた時、あなたが処理した部分もよかったです!
    あまりフィードバックがなくて、、すばらしいです!
    Yonghyeonのコードに基づいて修正されたコードです
    # map 을 사용하여 코드를 줄일 수 있음
    hour, minu, seco = map(int, input().split())
    
    while True:
        bakeTime = int(input())
        # 아주 좋습니다!
        if(0 <= bakeTime <= 500000):
            break
        else:
            print("값이 너무 큽니다, 500000 이하로 입력해주세요.")
    
    allTime = hour * 3600 + minu * 60 + seco + bakeTime
    allTime = allTime % 86400 # GOOD!!
    hour, allTime = allTime // 3600, allTime % 3600
    minu, allTime = allTime // 60, allTime % 60 # int 를 사용하지 않고 // (몫), % (나머지) 를 사용하면 됨
    seco = allTime
    
    print(hour, minu, seco)

    第二題


    質問する

    문제
    팰린드롬이란 이효이, level, noon 과 같이 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어이다. Danni, ruru 와 같은 것은 팰린드롬이 아니다.
    
    입력
    첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고 100볻 작거나 같으며 알파벳 소문자로만 이루어져있다.
    
    == 추가 ==
    한글이나 대문자가 입력되어도 구분할 수 있는 팰린드롬 만들기
    
    출력
    첫째 줄에 팰린드롬이 주어진다면 1, 아니면 0을 출력한다.
    
  • 具泰宇さん
  • def palidrome(my_string):
        for i in range(len(my_string) // 2):
            if(my_string[i] != my_string[len(my_string) -1 -i]):
                return False
            return True
        
    print(palidrome(input()))
    解答するときに役立つことがたくさんあるので、あまりフィードバックがなく、ただこの部分にも変数名についての残念なところがあります!pelindromを判別する関数なので、ispelindromのように関数名を書いたらboolを返す関数の方が適切でしょうか?
  • 李勇賢
  • str = input()
    
    strCount = len(str) - 1
    strCountHalf = int(len(str)/2)
    loopCount = 0
    trueFalse = 1
    
    while(strCountHalf > 0):
        if(str[loopCount] != str[strCount]):
            trueFalse = 0
            break
        loopCount += 1
        strCount -= 1
        strCountHalf -= 1
    
    print(trueFalse)
    whileドアとforドアの違いは何ですか?
    while文は私が何回巡回するか分からないとき、for文は私が何回正確に巡回するか知っているときに主に使用します.上のコードもstrCountの半分しかないことを知っているので、for文を使うことができます.△この問題ではあまり関係ない!よくやった!今回もシェア演算(int(len(str)/2)=>len/2)を用い,intをもう一度書く必要はない.
    Yonghyeonのコードに基づいて修正されたコードです
    str = input()
    
    strCount = len(str) - 1
    strCountHalf = len(str) // 2
    isPelindrom = 1
        
    for step in range(strCountHalf):
        if(str[step] != str[strCount - step]):
            isPelindrom = 0
            break
    
    print(isPelindrom)
  • 礼志
  • word = input()
     
    palindrome = 1
    for i in range(len(word) // 2):
        if word[i] != word[-1 - i]:
            palindrome = 0
            break
     
    print(palindrome)
    Pythonのインデックス機能をご存知かもしれません.コードが短くて、可読性もいいです!これは誰でも理解できる変数名について書かれています.素晴らしい!関数をどのように使用して実現するかを考えてみましょう.