0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(きっと挫折する)ひとりアドカレAdvent Calendar 2024

Day 1

Python勉強中なので、練習問題を解く

Last updated at Posted at 2024-12-02

仕事で使うかもしれないため、Pythonを勉強中です。

筆者は、仕事でC言語、趣味でJavaScriptを使い、少しだけRustを勉強した系の人です。

Pythonは何に使ったらいいかもわかっていませんが、なんか使えると便利と聞いたので、勉強しようとしています。

ひとまず

ひとまず文法を覚えようと思って、京都産業大学の練習問題を課題にして、100本ノックの基礎編19問をPythonで行いました。

以下はそのメモです。

当然のことながら、書いてあるコードの正確性は保証できません。
素人の書いたコードだから当然です。

No.00

print("Hello World!")

このあたりはC言語とJavaScriptとRustがごっちゃになりやすいところです。
まあ、調べるのに時間がかかるところでもないので、この言語はなんだったっけ?となったら、都度調べます。

No.01

x = 12345
y = 23456
print("{0} + {1} = {2}".format(x,y,x+y))

Pythonでのprintfを調べたら、これが新しめの方法だよって出てきました。

20241202追記

ご指摘いただいたので、追記。

Python3.6(2016年リリース)からフォーマット済み文字列リテラルが追加されたようです。

変数名をそのまま埋め込めるため、複数の変数があるときは可読性が高いですね。

str.format()の形式はPython2.6(2008年リリース)から、導入されたようです。

No.02

x = 12345
y = 7
print("{} / {} の余りは {}".format(x,y,x%y))

このへんは、C言語とかと変わらない印象。

No.03

number = input("input number: ")
print("your number is {}".format(number))

調べたらでてきた方法でお手軽に。

No.04

number = int(input("input number: "))
print("answer = {}".format(number*3))

int()がない状態で書いたら、

input number: 43
answer = 434343

と、なりました。
型の問題だなと推測したので、JSにあるように、適当にint()でくくったら、想定通りになりました。

No.05

num1 = int(input("input 1st number: "))
num2 = int(input("input 2nd number: "))
print("sum: {}".format(num1 + num2))
print("sub: {}".format(num1 - num2))
print("mul: {}".format(num1 * num2))
print("div: {}, rem: {}".format(int(num1 / num2), num1 % num2))

まあ、こういうのはシンプルですね。

No.06

num = int(input("input number: "))
if(num == 0) :
    print("zero")

Pythonでのif文の書き方は調べました。
インデントが必要なんですね。
これは、他の言語に比べて体裁が崩れにくくていいなあと思います。

No.07

num = int(input("input number: "))
if(num == 0):
    print("zero")
else :
    print("not zero")

else節はわかりやすい。

No.08

num = int(input("input number: "))
if(num > 0) :
    print("positive")

ふつう。

No.09

num = int(input("input number: "))
if(num > 0) :
    print("positive")
elif(num < 0) :
    print("negative")
else :
    print("zero")

ふつう。

No.10

num = int(input("input number: "))
print("absolute value is {}".format(abs(num)))

よくabs()ってあるよなあと思って、調べたらあったので適当に使いました。

No.11

for n in range(0, 10, 1) :
    print("Hello World!")

回数が決まっているループにwhileは使いたくなくて、forを調べました。

Pythonでのforはfor ... in ...の形で使うらしい。
で、inの右側にはrangeを使うらしいので、適当にそれっぽく書いてみました。
0~N-1までという点にはお約束通りひっかかりましたし、これからもひっかかるでしょう。

No.12

num = int(input("input number: "))
for n in range(0,num, 1):
    print("Hello World!")

入力値に置き換わっただけ。

No.13

num = int(input("input number: "))
for n in range(0, num+1, 1):
    print("{}".format(n))

このへんでも、NかN+1かでひっかかっています。

No.14

num = int(input("input number: "))
for n in range(num, 0-1, -1) :
    print("{}".format(n))

自分的に終端値がわかるように、0-1と書きました。

No.15

num = int(input("input number: "))
for n in range(0,num+1, 1) :
    if(n%2 == 0):
        print("{}".format(n))

少し考えましたが、単純にカウントアップしていって、2の倍数だったら出力する方式です。

No.16

first_flag = True
num = 1

while(first_flag or num != 0) :
    num = int(input("input number: "))
    first_flag = False

Pythonにはdo-whileがない。
その場合の適切な書き方がわからず、かなり不細工なプログラムになりました。

最初、orを||と書いて、コンパイラが怒ってきました。

No.17

arr = range(0,10,1)
for i in arr :
    print("{}".format(i))

いまいち、range()とlist(range())の違いがわからない……と思いながら、書いています。

No.18

num = int(input("input number: "))
arr = [num for i in range(10)]
for i in arr:
    print("{}".format(i))

書き方がわからず、
C言語ならこう書くんだけど……と、少し考えこみました。
適当に調べていたら、[num for i in range(10)]の書き方でてきたため、これを使いました。

No.19

nn = 5
arr = list(range(nn))

for i in range(nn):
    number = int(input("input number: "))
    arr[i] = number

for i in range(nn) :
    print("{}".format(arr[i]))

要素数が変わってもいいように変数化。
その他はふつうに。

最後に

以上、Python勉強中なので、練習問題を解いた記録でした。
C言語向けの練習問題のようですが、基礎的な文法を学ぶにはどの言語でも良い課題になりますね。

0
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?