Python3エンジニア認定基礎試験勉強_1

  • replaceの第3引数はcount 最大置換回数
>>> "test_test_test".replace("test","deploy",1)
'deploy_test_test'
  • sys.pathの初期化で参照しないもの

PYTHONPATH環境変数と指定したデフォルトパスで初期化されるとのこと。どういうこと?

path[0]には実行中のスクリプトのパス(ターミナルの場合は空文字)

PYTHONPATHはモジュールの検索パス(site-packagesとか)

docs.python.org

  • ZeroDivisionError

ゼロで わると でる えーら

  • 鬼門、%5.3f
>>> print('円周率は%5.3f'%math.pi)
円周率は3.142

フォーマット指定子というものがある

%fは実数表記

5は全体の幅、3は小数点以下の幅

www.k-cube.co.jp

  • cosinの計算

手計算できないから鬼門だね~~~~~~~~~選択肢でなんとなく理解しろ

>>> import math
>>> math.cos(math.pi / 5)
  • 例外処理
>>> try:
...     raise Exception("1","2")
... except Exception as msg:
...     print(msg.args[1])
... 
2

tryで例外を発生させてexceptで拾う msg自体ははException classなので"2"のみ表示する場合は.argsでtupleを取得する必要がある

-モジュールとパッケージ

ファイル = モジュール

init.pyの入ったフォルダ = パッケージ

という理解

>>> name1,name2,name3,name4= '', 'suzuki','tanaka','sato'
>>> selected_name = name1 or name2 or name3 or name4
>>> print(selected_name)
suzuki

長さ0の場合はFalse、1以上はTrue

先の変数が優先される。

qiita.com

  • repr

strとの違いはeval()でもとのオブジェクトに戻せること

def repr(self):で指定できる

  • 変数代入時のカンマ区切り
>>> val = 3 + 1, 2 + 1, 1 + 1
>>> val
(4, 3, 2)

tupleになるよ

-ミュータブル(mutable)とイミュータブル(immutable)

ミュータブル = 可変(list)

イミュータブル = 不変(tuple)

  • バイナリデータレコードの処理を行うモジュールを選択肢の中から選びなさい。

struct!!!!!!(使ったことがないので分からない)

  • 関数宣言後の変数変更
>>> i = 10
>>> 
>>> def num(arg=i):
...     print(arg)
...
>>> i = 7
>>>
>>> num()
10

宣言した後の変数変更は反映されない(知らんかった)

  • アンダースコアの使い方

問題ではインタプリタで最後に表示した式の格納している変数として出題

他の使い方は下記リンク

medium.com

  • list.count()

リスト内の要素の数をカウントする

class test: 
    #クラス変数
    class_variable = "class"
    def __init__(self):
        #インスタンス変数
        self.instance_variable = "instance" 

クラス変数はインスタンス毎で共有される

インスタンス変数はインスタンス内でのみ使用できる

  • range()

Listではなくrangeオブジェクトが返される

  • openのモード
with open("./hoge.txt","w") as fp:
    fp.write("hogehoge")

w(書き込み)a(追記)等々

docs.python.org

  • TAB補完

Windowsだからタブ補完できない?って思ったらpyreadlineをpip installすれば良いみたいです。

jまたはj

数学クソ雑魚なので虚数が何かは説明できない

左から順番に比較する

>>> (1,3,5) < (1,2,3,4)
False
>>> [1,3,5] < [1,2,4,5]
False

3 < 2はFalseとなる

-正規表現のモジュール

docs.python.org

  • reprlib.repr

文字列の長さを制限付きにする

Set型を渡すとアルファベット順にソートする

リストがアンパックされる

>>> def test(a,b,c):
...     print(f"{a} {b} {c}")
...
>>> arr = ["a","b","c"]
>>> test(*arr)
a b c
  • list(zip())
>>> arr = [
...     [1,2,3],
...     ["one","two","three"]
... ]
>>>
>>> list(zip(*arr))
[(1, 'one'), (2, 'two'), (3, 'three')]

渡したリストの各配列順にタプルのリストができる

  • docstring

ダブルクォーテーション3つのやつ、docstiringって言うんだってよ

  • 履歴

ユーザーディレクトリの .python_history に今までの履歴が残ってるんだって、へぇ~~~~~

math.sqrt()

square root

  • 文字列を指定位置で置き換えるとき
>>> string = "test"
>>> string[1] = "n"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

エラーになる、一回リストにして位置指定をして再度joinで文字列に戻す

  • x//y

割り算の値の小数点切り下げした値が返される

  • enumrate インデックス番号を付けて返す