はじめに
興味があればご覧ください: インタープリター言語 + 動的型付け言語 + 厳密に型付けされた言語
対話モード: (主にテストに使用され、ipython を試すことができます)
スクリプト
環境:
python2.7 + easy_install + pip + virtualenv + ipython をお勧めします
インデント
Python 関数には明確な開始と終了がなく、関数の開始と終了をマークする中括弧もありません。区切り文字はコロン (:) のみで、コード自体はインデントされます。
例:
if 値 == 1:
値 += 1
elif 値 == 2:
pass
else:
値 += 10
識別子
変数は識別子の例です。 識別子は、何かを識別するために使用される名前です。識別子に名前を付けるときは、次のルールに従う必要があります:
1.Python の識別子は大文字と小文字が区別されます。
2. 識別子は文字またはアンダースコアで始まり、文字、アンダースコア、数字を含めることができます。大文字と小文字は区別されます。
3. アンダースコアで始まる識別子には特別な意味があります。
単一のアンダースコア (_foo) で始まるものは、直接アクセスできないクラス属性を表します。これらは、クラスによって提供されるインターフェースを介してアクセスする必要があり、「from xxx import *」を使用してインポートすることはできません。二重アンダースコア付き (__foo) クラスのプライベート メンバーを表します。二重アンダースコアで開始および終了する
(foo) は、クラスのコンストラクターを表す init() など、Python の特別なメソッド専用の識別子を表します。
代入ステートメント
1. 代入ステートメントはオブジェクト参照値を作成します
2. 変数名は初めて代入されるときに作成されます
3. 変数名には、参照される前に値が割り当てられる必要があります。値が割り当てられていないものは参照できません
割り当て方法
変数(変数)=値(値)
Python の元のタプルとリストの代入ステートメントは、長さが等しい限り、右側が任意のタイプのシーケンスであることを受け入れるように一般化されています。長さが等しい必要があることに注意してください
Variable1, variable2,...=Value1,Value2,...
优点:
运算符
一个表达式可以分解为运算符和操作数
运算符 的功能是完成某件事,它们由如+这样的符号或者其他特定的关键字表示
运算符需要数据来进行运算,这样的数据被称为 操作数
运算符优先顺序列表(从最高到最低)
结合规律
运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算
计算顺序
默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果你想要改变它们的计算顺序,你得使用圆括号。好的做法:默认对复杂的运算加括号,而不是依赖于默认结合和计算顺序
真值
真值测试
1、任何非零数字或非空对象都为真
2、数字零,空对象以及特殊对象None都为假
3、比较和相等测试都会递归地运用到数据结构中
4、比较和相等测试会返回True或False
真值表
布尔表达式
三种布尔表达式运算符
比较
数字通过相对大小进行比较
字符串时按照字典顺序的,一个字符一个字符比较
列表和元组从左到右对每部分的内容进行比较
字典通过排序后的键值列表进行比较
数字混合类型比较在python3是错误的,但是python2.6支持,固定但任意的排序规则
布尔数
有两个永远不改变的值True,False
布尔是整型的子类,但不能被再继承
没有nonzero()方法的对象的默认值是True
对于值为0的任何数字或空集,值False
在数学运算中,Bollean值的True和False分别对应于1和0
基本控制流
if
基本的条件测试语句,用来判断可能遇到的不同情况,并针对不同的情况进行操作
基本形式
python根据缩进判断, elif和else部分是可选的
例子:
if a < b and c < d:
print("branch a")
elif a == b:
print("branch b")
else:
print("branch c")
switch
python 本身没有 switch 语句,若需要,用if/elif/else实现完成同样的工作,某些情况可以考虑用字典
也可以用dict的形式
if/else三元运算符
for
基本文法
ループ制御ステートメントを使用して、特定のシーケンスをループできます
else ブロックはオプションであり、ループの終了時に実行されます。break によってループが終了すると、else は実行されません。
形式:
[コード]
for <オブジェクト コレクション>:
if<条件>:
if<条件> :
continue
<その他のステートメント>
else:
<その他のステートメント>
1. オブジェクト コレクションはリスト、辞書、タプルなどです。
2. for..in ループは任意のシーケンスに適用できます。
3. for は辞書を走査するときに、そのキーを走査します。辞書
stop 終了番号、x の場合、0-(x-1) の整数のリストを生成
step オプションのパラメータ、ステップ サイズ、書かれていない場合はデフォルトは 1
range(1,5) にはシーケンス [1,2,3,4]
が含まれます
(python3.x は無視できます)
Rangeメソッドではリストオブジェクトを生成しますが、XRangeでは返されたものがそれほど大きくない場合やループ内では基本的に最初から最後までチェックする場合はxrangeオブジェクトを生成します。これら 2 つの方法の効率はほぼ同じです。ただし、返されるアイテムが大きい場合、またはループ内で頻繁に中断される場合は、スペースを節約するだけでなく効率も向上する XRange を使用することをお勧めします。
その間
if ステートメントと同様に、条件付きテスト ステートメントとループが含まれており、ステートメント ブロックを繰り返し実行できます。
オプションの else ステートメント ブロック。else ブロックと同じです。
形式:
else ブロックは、while ループの条件が False になった場合にのみ実行されます
break を使用してループを終了する場合、while オプションの else ブロックは実行されませんPython には do while または do until ループ ステートメントがありません
break & continue & pass
break、ループステートメントを終了し、for/while ループ内で終了した場合、その else は実行されません
。
続行し、現在のサイクルを終了し、ループの次のラウンドに入ります - 最新のループの先頭にジャンプします (ループの最初の行に来ます)
pass は何も行いません。これは単なる空のプレースホルダーステートメントであり、何らかの構文ステートメントが必要であるが、プログラムは何も行わない場合に使用されます。
ループ else ブロック: ループが正常に終了するとき、つまり
のみ実行されます。for または while ループから中断すると、対応するループ else ブロックは実行されません。覚えておいてください、break ステートメントは for ループ内でも使用できます
その他
ループ作成のヒント:
反復プロセス中に反復シーケンスを変更するのは安全ではありません (これは、リンク リストなどの変更可能なシーケンスを使用する場合にのみ当てはまります)。反復しているシーケンスを変更する場合 (たとえば、選択範囲をコピーする)、そのコピーを反復できます。カッティングマークを使うと簡単に出来ます
>>>