DataStructure 2 04生態学(4385)


DataStructure 2 04エコロジー(4385)


質問する


プログラムは複数の行で構成され、各行にツリー名があります.いずれの名前も30文字を超えず、最大10000種、最大10万本の木を入力します.

入力


Red Alder
Ash
Aspen
Basswood
Ash
Beech
Yellow Birch
Ash
Cherry
Cottonwood
Ash
Cypress
Red Elm
Gum
Hackberry
White Oak
Hickory
Pecan
Hard Maple
White Oak
Soft Maple
Red Oak
Red Oak
White Oak
Poplan
Sassafras
Sycamore
Black Walnut
Willow

しゅつりょく


Ash 13.7931
Aspen 3.4483
Basswood 3.4483
Beech 3.4483
Black Walnut 3.4483
Cherry 3.4483
Cottonwood 3.4483
Cypress 3.4483
Gum 3.4483
Hackberry 3.4483
Hard Maple 3.4483
Hickory 3.4483
Pecan 3.4483
Poplan 3.4483
Red Alder 3.4483
Red Elm 3.4483
Red Oak 6.8966
Sassafras 3.4483
Soft Maple 3.4483
Sycamore 3.4483
White Oak 10.3448
Willow 3.4483
Yellow Birch 3.4483

に答える

  • の入力値がない場合、break
  • ディック郡に鍵があることを確認
  • キーを押す昇順で並べ替え(dic.keys()の場合、キー値
  • のみが格納.

    コード#コード#

    import sys
    sys.stdin = open("input.txt","rt")
    def input():
        return sys.stdin.readline().rstrip()
    
    # 값 넣는 part
    dic = dict()
    cnt = 0
    
    while True:
        s = input()
        if s == "": # input값이 없다면 break
            break
        cnt += 1
        if s in dic: # 딕셔너리에 키가 있는지 확인
            dic[s] += 1
        else: 
            dic[s] = 1 #
    
    dic = sorted(dic.items()) # 키를 기준으로 오름차순 정렬하기 만약 sorted(dic.keys())라면 키값만 저장됨
    
    # 출력 part
    for val, key in dic:
        num = (key/cnt)*100.0
        if int(num) //2 ==0:
            num = num + 0.0005
        print(val, round(num, 4))
    #소수점 넷째자리까지만 표현하고 싶다면, 파이썬 내장 함수인 round() 함수를 이용
    # 반올림은 round함수를 이용해보자. round함수에 입력인자로 값이나 변수를 넣으면 소수점 첫째 자리에서 반올림 해 준다. 
    # 소수점 n번째 자리까지 반올림하고 싶다면, 두 번째 입력인자에 값을 넣으면 된다.
    
    # 오류해결 !!!!!
    #파이썬은 사사오입 원칙을 따른다. 반올림할 자리수가 5이면 앞자리 숫자가 짝수면 내림, 홀수면 올림이다.
    # 4.5 의 경우는 결과 4 / 3.5의 경우 결과는 4 따라서 짝수인 경우 0.1을 더하여 round 함수를 사용해야 한다.

    学識


    最初はファイルを読み終えると思っていたので、pthonで1行ずつファイル全体を読む方法を検索して勉強しました.
    #f = open("input.txt", "rt")
  • line = f.readline().strip()
  • 1行
  • readline()/を読みます.行文字
  • をstrip()で消去する
  • if not line:break#読み込む文字列がない場合は、「」を返します.
  • f.close()#ファイルを閉じる
  • いらないけど、知っておくべき、ははは

    コメント


    #小数点の4位のみを表す場合は、Python内蔵関数round()を使用します.
  • 四捨五入round関数を使用します.値または変数を入力パラメータとしてround関数に入れると、小数点の1番目に四捨五入されます.
  • 小数点のn番目のビットに切り込みたい場合は、2番目の入力パラメータに値を入力します.
  • エラー解決!!!
    #Pythonは四捨五入の原則に従う.四捨五入の桁が5だと前列が偶数だと下がり、奇数だと上がります.
  • 4.5の場合、結果4/3.5の場合、結果は4なので偶数の場合、0.1を足してround関数を使うべきです.