Python基礎学習ノート(一)
24950 ワード
インストールpythonは公式サイトでインストールパッケージをダウンロードすることができ、各システムのインストール手順は自分で検索することができます.
pythonでよく使われる構文を記録します.
一、
print:
文字列は'または'''
接続文字列用+
二、演算
直接運転台でプラスマイナス乗除+-*/
二次**
剰余をとる
変数を定義し、直接値を割り当てます.タイプを明記する必要はありません.複数の変数を一度に定義できます.
三、
whileサイクル
例:0-9のすべてのデータを印刷する
四、
forサイクル
例:内容は
五、
range使用
Pythonにファクトリ関数を内蔵し、
1 range(start, stop)
ここで、
上記の表現は、
2 range(stop)
3 range(start, stop, step)
六、
Pythonでの集合タイプは,
Listは中括弧で命名されています.
機能:
tupleタイプ:カッコ、またはカッコなしで記述できます
プログラムは、行単位で「python」、2.7および64を出力します.
dictionaryタイプ(c++/javaのmapに相当)
数字と文字列は、
出力された結果は、
setタイプ
出力
要素をaddで追加
クリアエレメントはremoveまたはdiscard、クリアはすべてclear
setのフィルタ操作
他のものと比較して、元のsetに彼とは異なるものがあるかどうかを見るなど、フィルタリングもできます(
七、
反復器
Pythonの
上位5つのFibonacciデータ
八、
ビルダー
反復器の使用に加えて、Pythonは
上位5つのFibonacciデータ
(欠点はfib(0)が呼び出されるとyieldにデータがないのでfib(0)に戻り値がない)
九、
1.if判断
例:
2.if else判断
例:
pythonには、
上記の文は、
まず、
3.if elif else判断
十、def関数
Pythonは
parametersの位置は関数のパラメータ(パラメータがなくてもよい)であり,呼び出し時に伝達すればよい.
例:
上では
スクリプトで呼び出すスクリプトを使用する場合は、スクリプトに関数呼び出し文を最後に追加するだけです.
では、スクリプトを実行すると、関数が実行されます.
パラメータ:
関数のデフォルトパラメータ:
例:
じこよびだし
スクリプトを実行するときにユニットテストなどのコードを実行したい場合は、スクリプトの最後にユニットテストコードを加えることができますが、このスクリプトがモジュールとして機能を提供するときにユニットテストコードも実行されます.これらは往々にして望ましくありません.私たちはこれらのコードをスクリプトの最後に入れることができます.
スクリプトを実行すると、
可変パラメータ
関数の可変パラメータは,その名の通り,入力されたパラメータが変化可能であり,1個,2個から任意個である.もちろん、これらのパラメータは、
入力パラメータは
キーワードパラメータ
キーワードパラメータは、0個または任意のパラメータ名を含むパラメータを入力ことができ、これらのパラメータ名は関数定義に現れず、これらのパラメータは関数内部で自動的に辞書(dict)にカプセル化される.
パラメータ
可変パラメータとキーワードパラメータにより、任意の関数を
pythonでよく使われる構文を記録します.
一、
print:
文字列は'または'''
print('hello')
print("hello")
接続文字列用+
二、演算
直接運転台でプラスマイナス乗除+-*/
int()
およびfloat()
;int()
浮動小数点型数の場合、int
は整数部分を保持し、例えばint(1.9)
は四捨五入ではなく1
を出力する.二次**
3**2 #3 2 , 9
剰余をとる
8%3 #8 3 2 2, 2
変数を定義し、直接値を割り当てます.タイプを明記する必要はありません.複数の変数を一度に定義できます.
apple=1
a,b,c,d=1,2,3,4
三、
whileサイクル
while condition:
expressions
例:0-9のすべてのデータを印刷する
condition = 0
while condition < 10:
print(condition)
condition = condition + 1
四、
forサイクル
for item in sequence:
expressions
例:内容は
example_list
の各要素の順である注意Pythonはインデント表示プログラムを用いた構造であるexample_list = [1,2,3,4,5,6,7,12,543,876,12,3,2,5]
for i in example_list:
print(i)
五、
range使用
Pythonにファクトリ関数を内蔵し、
range
関数は1つのシーケンスを返し、合計3つの使用方法があります.1 range(start, stop)
ここで、
start
はシーケンスの開始値であり、stop
は終了値であるが、この値は含まれず、数学での表現[start, stop)
のように、左側は閉区間であり、右側は開区間である.for i in range(1, 10):
print(i)
上記の表現は、
1-9
のすべての整数を返しますが、10
は含まれません.2 range(stop)
start
を省略すると0から始まり、range(0, stop)
に相当する3 range(start, stop, step)
step
は、ステップ長、すなわち、間隔の2つの値差を表す.start
から順にstep
の値がstop
以上になるまで増加するfor i in range(0,10, 5):
print(i)
0, 5
が出力されます.六、
Pythonでの集合タイプは,
list
,tuple
,dict
およびset
などである.Listは中括弧で命名されています.
a_list = [12, 3, 67, 7, 82]
機能:
#append()
a = [1,2,3,4,1,1,-1]
a.append(0) # a 0
print(a)
# [1, 2, 3, 4, 1, 1, -1, 0]
#insert()
a = [1,2,3,4,1,1,-1]
a.insert(1,0) # 1 0
print(a)
# [1, 0, 2, 3, 4, 1, 1, -1]
#remove
a = [1,2,3,4,1,1,-1]
a.remove(2) # 2
print(a)
# [1, 3, 4, 1, 1, -1]
#
# :
a = [1,2,3,4,1,1,-1]
print(a[0]) # a 0
# 1
print(a[-1]) # a
# -1
print(a[0:3]) # a 0 2 ( 3 )
# [1, 2, 3]
print(a[5:]) # a 5
# [1, -1]
print(a[-3:]) # a 3
# [1, 1, -1]
# (index):
a = [1,2,3,4,1,1,-1]
print(a.index(2)) # a 2
# 1
# :
a = [4,1,2,3,4,1,1,-1]
print(a.count(-1))
# 1
# :
a = [4,1,2,3,4,1,1,-1]
a.sort() #
print(a)
# [-1, 1, 1, 1, 2, 3, 4, 4]
a.sort(reverse=True) #
print(a)
# [4, 4, 3, 2, 1, 1, 1, -1]
tupleタイプ:カッコ、またはカッコなしで記述できます
tup = ('python', 2.7, 64)
for i in tup:
print(i)
プログラムは、行単位で「python」、2.7および64を出力します.
dictionaryタイプ(c++/javaのmapに相当)
数字と文字列は、
key
またはvalue
とすることができ、同じ辞書では、すべてのkey
またはvalue
が同じ形式である必要はありません.dic = {}
dic['lan'] = 'python'
dic['version'] = 2.7
dic['platform'] = 64
for key in dic:
print(key, dic[key])
出力された結果は、
platform 64,lan python, version 2.7
であり、辞書は反復中にkey
を反復可能なオブジェクトとして返す.注意辞書ではkey
が乱順であり,すなわち挿入の順序と一致しない.順序が一致する辞書を使用する場合は、collections
モジュールのOrderedDict
オブジェクトを使用します.setタイプ
s = set(['python', 'python2', 'python3','python'])
for item in s:
print(item)
出力
python, python3, python2
setセットは重複項目を除去します.出力の結果も入力の順序ではありません.要素をaddで追加
クリアエレメントはremoveまたはdiscard、クリアはすべてclear
char_list = ['a', 'b', 'c', 'c', 'd', 'd', 'd']
unique_char = set(char_list) # {'b', 'd', 'a', 'c'}
unique_char.add('x')
# unique_char.add(['y', 'z']) this is wrong
print(unique_char) # {'x', 'b', 'd', 'c', 'a'}
unique_char.remove('x')
print(unique_char) # {'b', 'd', 'c', 'a'}
unique_char.discard('d')
print(unique_char) # {'b', 'c', 'a'}
unique_char.clear()
print(unique_char) # set()
setのフィルタ操作
他のものと比較して、元のsetに彼とは異なるものがあるかどうかを見るなど、フィルタリングもできます(
difference
).あるいは別のものと比較して、setの中に同じものがあるかどうかを見てみましょう(intersection
).char_list = ['a', 'b', 'c', 'c', 'd', 'd', 'd']
unique_char = set(char_list)
# {'b', 'd', 'a', 'c'}
print(unique_char.difference({'a', 'e', 'i'}))# {'b', 'd', 'c'}print(unique_char.intersection({'a', 'e', 'i'}))# {'a'} 七、
反復器
Pythonの
for
構文は実際に設計モードの反復モードを実現しているので、私たち自身も反復器の要求に従って自分で反復器オブジェクトを生成して、for
文で使用することができます.クラスに__iter__
およびnext
関数が実装されている限り、オブジェクトはfor
文で使用できます.Fibonacci反復オブジェクトを作成します.# define a Fib class
class Fib(object):
def __init__(self, max):
self.max = max
self.n, self.a, self.b = 0, 0, 1
def __iter__(self):
return self
def __next__(self):
if self.n < self.max:
r = self.b
self.a, self.b = self.b, self.a + self.b
self.n = self.n + 1
return r
raise StopIteration()
# using Fib object
for i in Fib(5):
print(i)
上位5つのFibonacciデータ
1,1, 2, 3, 5
が出力されます.八、
ビルダー
反復器の使用に加えて、Pythonは
yield
キーワードを使用しても同様の反復の効果を実現することができ、yield
文は実行されるたびに、すぐに上位呼び出し者に結果を返し、現在の状態は反復器の次のループ呼び出しのために保持されます.このような利点は、ハードウェアリソースを節約し、必要に応じて実行し、毎回1回しか実行しないことです.def fib(max):
a, b = 0, 1
while max:
r = b
a, b = b, a+b
max -= 1
yield r
# using generator
for i in fib(5):
print(i)
上位5つのFibonacciデータ
1,1, 2, 3, 5
が出力されます.(欠点はfib(0)が呼び出されるとyieldにデータがないのでfib(0)に戻り値がない)
九、
1.if判断
if condition:
expressions
例:
x = 1
y = 2
z = 3
if x < y:
print('x is less than y')
2.if else判断
if condition:
true_expressions
else:
false_expressions
例:
x = 1
y = 2
z = 3
if x > y:
print('x is greater than y')
else:
print('x is less or equal to y')
pythonには、
condition ? value1 : value2
のような3つのオペレータはありません.しかし、pythonは、if-else
の行内式によって同様の機能を達成することができる.var = var1 if condition else var2
上記の文は、
condition
の値がTrue
であれば、var1
の値をvar
に割り当てることができる.False
の場合、var2
の値はvar
に与えられる.worked = True
result = 'done' if worked else 'not yet'
print(result)
まず、
work
がTrue
であれば、done
文字列をresult
に割り当て、そうでなければnot yet
をresult
に割り当てると判断する.結果はdone
を出力します.3.if elif else判断
¶
if condition1:
true1_expressions
elif condition2:
true2_expressions
elif condtion3:
true3_expressions
elif ...
...
else:
else_expressions
十、def関数
def function_name(parameters):
expressions
Pythonは
def
を使用して関数定義を開始し、次いで関数名、括弧内部は関数のパラメータ、内部は関数の具体的な機能実現コードであり、関数に戻り値がある場合はexpressions
の論理コードでreturn
で返す.parametersの位置は関数のパラメータ(パラメータがなくてもよい)であり,呼び出し時に伝達すればよい.
例:
def function():
print('This is a function')
a = 1+2
print(a)
上では
function
という名前の関数を定義しましたが、関数はパラメータを受信していないので、カッコの内部は空で、すぐに関数の機能コードです.スクリプトを実行すると、関数のみを定義し、関数を実行していないため、出力は出力されません.このときPythonコマンドプロンプトに関数呼び出しfunction()
を入力します.ここでは呼び出し関数のカッコを省略できないことに注意してください.関数内の機能コードが実行され、結果が出力されます.This is a function
3
スクリプトで呼び出すスクリプトを使用する場合は、スクリプトに関数呼び出し文を最後に追加するだけです.
function()
では、スクリプトを実行すると、関数が実行されます.
パラメータ:
def func(a, b):
c = a+b
print('the c is ', c)
関数のデフォルトパラメータ:
def function_name(para_1,...,para_n=defau_n,..., para_m=defau_m):
expressions
例:
def sale_car(price, color='red', brand='carmy', is_second_hand=True):
print('price', price,
'color', color,
'brand', brand,
'is_second_hand', is_second_hand,)
じこよびだし
スクリプトを実行するときにユニットテストなどのコードを実行したい場合は、スクリプトの最後にユニットテストコードを加えることができますが、このスクリプトがモジュールとして機能を提供するときにユニットテストコードも実行されます.これらは往々にして望ましくありません.私たちはこれらのコードをスクリプトの最後に入れることができます.
if __name__ == '__main__':
#code_here
スクリプトを実行すると、
if
判定文がTrue
になり、内部のコードが実行されます.スクリプトが外部から呼び出された場合、if
判定文はFalse
であり、内部コードは実行されません.可変パラメータ
関数の可変パラメータは,その名の通り,入力されたパラメータが変化可能であり,1個,2個から任意個である.もちろん、これらのパラメータは、
list
またはtuple
転送にカプセル化することができるが、pythonic
が足りない.可変パラメータを使用すると、可変パラメータがこれらのパラメータを飲み込むため、可変パラメータは関数定義で特定のパラメータとデフォルトパラメータの前に現れないことに注意してください.def report(name, *grades):
total_grade = 0
for grade in grades:
total_grade += grade
print(name, 'total grade is ', total_grade)
入力パラメータは
name
であり、後のパラメータ*grades
は*
修飾を使用し、このパラメータが可変パラメータであり、反復可能なオブジェクトであることを示す関数を定義します.この関数は名前と各科の成績を入力し,名前と合計成績を出力する.したがって、関数report('Mike', 8, 9)
を呼び出すことができ、出力された結果はMike total grade is 17
であり、report('Mike', 8, 9, 10)
を呼び出すこともでき、出力された結果はMike total grade is 27
である.キーワードパラメータ
キーワードパラメータは、0個または任意のパラメータ名を含むパラメータを入力ことができ、これらのパラメータ名は関数定義に現れず、これらのパラメータは関数内部で自動的に辞書(dict)にカプセル化される.
def portrait(name, **kw):
print('name is', name)
for k,v in kw.items():
print(k, v)
パラメータ
name
とキーワードパラメータkw
とを入力する関数を定義し、**
修飾を使用します.このパラメータがキーワードパラメータであることを示し、通常、キーワードパラメータは関数パラメータリストの最後に配置されます.呼び出しパラメータportrait('Mike', age=24, country='China', education='bachelor')
出力:name is Mike
age 24
country China
education bachelor
可変パラメータとキーワードパラメータにより、任意の関数を
universal_func(*args, **kw)
で表すことができます.