10.Pythonの補足内容
3656 ワード
Sysモジュール
sys.argvは例sysである.argvリストにはコマンドラインパラメータが含まれています
sys.argvリストには常に少なくとも1つの項目があります.これがsysとして現在実行されているプログラム名です.argv[0]、他のコマンドラインパラメータはこの項目の後にあります.
osモジュール
このモジュールには一般的なオペレーティングシステム機能が含まれています.あなたのプログラムがプラットフォームとは関係ないことを望んでいる場合は、このモジュールが特に重要です.つまり、プログラムが作成された後、変更も問題もなくLinuxとWindowsで実行できるようにします. os.getcwd()関数は、現在の作業ディレクトリ、すなわち現在のPythonスクリプトが動作するディレクトリパスを取得します. os.getenv()とos.putenv()関数は、環境変数の読み取りと設定にそれぞれ使用されます. os.Listdir()は、指定したディレクトリの下にあるすべてのファイルとディレクトリ名を返します. os.remove()関数は、ファイルを削除するために使用されます. os.System()関数はshellコマンドを実行するために使用されます.
たんごブロック
文ブロックは、そのインデント階層によって他のブロックと区別されます.しかし、これは多くの場合正しいが、100%正確ではない.文ブロックに文が1つしか含まれていない場合は、条件文またはループ文の同じ行で指定できます.
リスト統合
多くの場合、ループを使用してリスト内の各要素を処理しますが、リスト統合を使用すると、より正確で簡潔で明確な方法で同じ作業を完了することができます.
関数でメタグループとリストを受信
関数にメタグループまたは辞書形式のパラメータを受信させるには、*と**の接頭辞をそれぞれ使用する特殊な方法があります.この方法は,関数が可変数のパラメータを取得する必要がある場合に特に有用である.
args変数の前に*接頭辞があるため、余分な関数パラメータはすべてargsにメタグループとして格納されます.**接頭辞を使用する場合、余分なパラメータは辞書のキー/値ペアとみなされます.
Lambda形式
Lambda文は、新しい関数オブジェクトを作成し、実行時に返すために使用されます.プログラミングで言及されるlambda式は、通常、関数が必要ですが、関数の名前を付けるのに苦労したくない場合に使用されます.つまり、匿名関数を指します.
exec文
exec文は、文字列またはファイルに格納されたPython文を実行するために使用されます.
eval文
eval文は、文字列に格納された有効なPython式を計算するために使用されます.
assert文
assert文は、ある条件が本当であることを宣言するために使用されます.たとえば、使用しているリストに少なくとも1つの要素があると確信し、それを検証し、それが本物ではないときにエラーを起こしたい場合は、assert文はこのような状況に適用される理想的な文です.assert文が失敗すると、AssertErrorが発生します.通常の状況でプログラムが到着しないと予想される場所に断言を置くことができる:assert false は、プライベートメソッドに渡されるパラメータをチェックするために使用できると断言する.(共通の方法では、外部に提供されるインタフェースであるため、コードの堅牢性を保証するために、方法に対応するパラメータ検査が必要である) 断言試験方法により実行する前置条件及び後置条件 は、断言チェッククラスの不変状態を使用して、いずれの場合も変数の状態が満たされなければならないことを保証します.(age属性が0より大きい、適切な値より小さい) 断言文を使用して変数を変更したり、メソッドの戻り値を変更したりしないでください.
repr関数
repr関数は、オブジェクトの仕様文字列表現を取得するために使用されます.逆引用符(変換子とも呼ばれる)は、同じ機能を実行できます.repr関数と逆引用符は、オブジェクトの印刷可能な表現形式を取得するために使用されます.クラスを定義することでrepr__メソッドは、repr関数に呼び出されたときにオブジェクトが返す内容を制御します.
sys.argvは例sysである.argvリストにはコマンドラインパラメータが含まれています
import sys
if len(sys.argv) < 2:
print ('Nso action specified.')
sys.exit()
if sys.argv[1].startswith('--'):
option = sys.argv[1][2:]
if option == 'version':
print( 'Version 1.2')
elif option == 'help':
print('--version or --help ')
else:
print ('Unknown option.')
sys.exit()
else:
print('argvs should be --version or --help')
sys.argvリストには常に少なくとも1つの項目があります.これがsysとして現在実行されているプログラム名です.argv[0]、他のコマンドラインパラメータはこの項目の後にあります.
osモジュール
このモジュールには一般的なオペレーティングシステム機能が含まれています.あなたのプログラムがプラットフォームとは関係ないことを望んでいる場合は、このモジュールが特に重要です.つまり、プログラムが作成された後、変更も問題もなくLinuxとWindowsで実行できるようにします.
import os
# cmd ping www.baidu.com
os.system("ping www.baidu.com ")
たんごブロック
文ブロックは、そのインデント階層によって他のブロックと区別されます.しかし、これは多くの場合正しいが、100%正確ではない.文ブロックに文が1つしか含まれていない場合は、条件文またはループ文の同じ行で指定できます.
flag = True
if flag: print 'Yes'
リスト統合
多くの場合、ループを使用してリスト内の各要素を処理しますが、リスト統合を使用すると、より正確で簡潔で明確な方法で同じ作業を完了することができます.
listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]
関数でメタグループとリストを受信
関数にメタグループまたは辞書形式のパラメータを受信させるには、*と**の接頭辞をそれぞれ使用する特殊な方法があります.この方法は,関数が可変数のパラメータを取得する必要がある場合に特に有用である.
def sumUp(*args):
totle = 0
for i in args:
totle += i
return totle
print(sumUp(1,2,3,4,5))
#
15
args変数の前に*接頭辞があるため、余分な関数パラメータはすべてargsにメタグループとして格納されます.**接頭辞を使用する場合、余分なパラメータは辞書のキー/値ペアとみなされます.
def fun(**args):
print(args)
fun(num1 = 1, num2 = 2)
#
{'num1': 1, 'num2': 2}
Lambda形式
Lambda文は、新しい関数オブジェクトを作成し、実行時に返すために使用されます.プログラミングで言及されるlambda式は、通常、関数が必要ですが、関数の名前を付けるのに苦労したくない場合に使用されます.つまり、匿名関数を指します.
# list :
map( lambda x: x*x, [y for y in range(10)] )
#
def sq(x):
return x * x
map(sq, [y for y in range(10)])
exec文
exec文は、文字列またはファイルに格納されたPython文を実行するために使用されます.
exec('print (\'123\')')
eval文
eval文は、文字列に格納された有効なPython式を計算するために使用されます.
eval('2*3')
assert文
assert文は、ある条件が本当であることを宣言するために使用されます.たとえば、使用しているリストに少なくとも1つの要素があると確信し、それを検証し、それが本物ではないときにエラーを起こしたい場合は、assert文はこのような状況に適用される理想的な文です.assert文が失敗すると、AssertErrorが発生します.
li = [1,2,3,4]
assert len(li) >=4
li.pop()
# error
assert len(li) >=4
repr関数
repr関数は、オブジェクトの仕様文字列表現を取得するために使用されます.逆引用符(変換子とも呼ばれる)は、同じ機能を実行できます.repr関数と逆引用符は、オブジェクトの印刷可能な表現形式を取得するために使用されます.クラスを定義することでrepr__メソッドは、repr関数に呼び出されたときにオブジェクトが返す内容を制御します.
>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
>>> repr(dict)
"{'google': 'google.com', 'runoob': 'runoob.com'}"