

自然数Nをコマンドライン引数などの手段で受け取り，入力のうち先頭のN行だけを表示せよ.というものをPythonで書いたのですが、とりあえず書けただけ感が否めないコードになってしまいました。もう少しPythonらしい書き方ができないでしょうか。

[code]

    import sys
    
    i = 0
    with open("hightemp.txt", "r") as f:
        whole_str = f.readlines()
    
    while(i != int(sys.argv[1])): 
        print(whole_str[i])
        i += 1
    
[/code]


CC BY-SA 3.0
2017-02-21T08:37:20.637
32835
2017-02-22T13:06:33.250
2017-02-21T14:21:35.267
19110
20760
question
python
入力の先頭を表示するPythonらしいプログラムの書き方


可読性などに問題がなければあまり細かいこと気にしなくてもいいと思いますが、以下のようにも書けます:

[code]

    import sys
    
    with open("hightemp.txt") as f:
        for i in range(int(sys.argv[1])):
            print(f.readline())
    
[/code]


CC BY-SA 3.0
2017-02-21T11:07:22.680
32841
2017-02-21T11:07:22.680
13227
32835
answer

[code]

    import sys
    from itertools import islice
    
    n = int(sys.argv[1])
    with open("hightemp.txt") as f:
        for line in islice(f, n):
            print(line.rstrip('\n'))
    
[/code]


CC BY-SA 3.0
2017-02-22T13:06:33.250
32874
2017-02-22T13:06:33.250
20638
32835
answer