0
0

Python基礎(除算、__doc__、argparse、random)

Last updated at Posted at 2024-09-03

自己紹介

  • Python独学歴2年目です(実務ではほぼ使っておりません)
  • 普段の業務
    • SQL
    • PL/SQL
    • BIツール
  • Pythonを選んだ理由
    • とある理由でWeb上からデータを取得したかった
    • 比較的簡単
    • 名前がかっこいい

本題

とりあえず資格いっとくかという勢いでPython基礎認定試験の勉強始めました(2024/09/02)
なんですが、2~3割くらい明確な答えがわからず正解or不正解しているのがあるので復習

ちゃちゃっと行きます。


徐算について

  • Pythonでは「/」を使った除算は浮動小数点になる
addition = 2 + 5
subtraction = 7 - 5
multiplication = 2 * 5
division = 10 / 2
division2 = 10 // 2 # 「//」を使う

print(addition)
print(subtraction)
print(multiplication)
print(division)
print(division2)

# 結果
>>> 7
>>> 2
>>> 10
>>> 5.0 # 結果は整数だが、5.0となる
>>> 5

ドキュメンテーションコメントの出力

  • __doc__属性に文字列として格納されてる
def hoge():
    '''
    これはテストです。

    Arguments:
        None

    Return:
        None
    '''
    print("Hello!!")

print(hoge.__doc__) # 必要に応じてtype(hoge.__doc__)でもいいかもね

>>> これはテストです
>>> Arguments:
>>>     None
>>> Return:
        None

# こんなのもある
print(help(hoge))

>>> Help on function hoge in module __main__:
>>> 
>>> hoge()
>>> これはテストです
>>>
>>> Arguments:
>>>    None
>>> Return:
>>>     None

コマンドライン引数(argparseモジュール)

  • sys.argvよりもいい感じのCLIを作成できる
parse.py
import argparse

parser = argparse.ArgumentParser() # インスタンス生成
parser.add_argument("arg1")
parser.add_argument("arg2", nargs="+") # こちらは引数を1以上必須とします
args = parser.parse_args()
print(args)
  • 下記の様に実行
python parse.py 果物 りんご 

# 結果
Namespace(arg1='果物', arg2=['りんご', '梨'])
  • 引数を正しく与えないパターン
python parse.py

# 結果
usage: parse.py [-h] arg1 arg2 [arg2 ...]
parse.py: error: the following arguments are required: arg1, arg2
  • ほかにも色々できそうなので今度CLIツール作成する時に使ってみたい

randomモジュール

  • random関数
import random

print(random.random())  # 0以上1未満のランダムなfloatを返す
# 例)0.23441577915211131
  • choice関数
import random

print(random.choice(range(10)))  # 引数に与えられた中から1つ文字列を返す
# 例)2
  • uniform関数
import random

print(random.uniform(0, 10))  # 0以上10以下のfloatを返す
# 例)6.630403607319101
  • randint関数
import random

print(random.randint(0, 10))  # 0以上10以下のintを返す
# 例)7
  • sample関数
import random

# random.sample(a, b)  aからb個重複なしで抽出

print(random.sample(range(0, 10), 3))
# 例)[2, 9, 4]
  • randrange関数
import random

# randrange(a, [b], [c])  aからb未満のステップcでintを返す

print(random.randrange(0, 10, 2))  # 0から10未満の0を含めた2の倍数を返す
# 8
0
0
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
0