——ヤンキウ
Python 演算子、関数とモジュール、およびプログラム制御構造
このコラムについて
インストールと環境変数の設定についてはPython
、このコラム記事「Python のインストールと環境変数の設定 愚者のチュートリアル (2023 年 9 月)」を参照してください。
Pycharm
インストール、デプロイ、基本的な使い方については、このコラム記事「Python インタプリタと Pycharm の確実なインストールとデプロイ」を参照してください。
オペレーター
Pyihon は、算術演算子、ビット演算子、関係演算子、論理演算子の4 種類の演算子を提供します。Python は非常に大きな数値を処理できるため、プログラミングが容易になります。
ピホンオペレーター | |||||
---|---|---|---|---|---|
カテゴリー | オペレーター | 関数 | 説明する | 優先度 | 目数 |
/ | () | 括弧 | 操作の順序を変更する | 0 | / |
算術演算子 | ** | 力 | 通常は省略して書かない | 1 | 双目 |
+ | 正号 | 通常は省略して書かない | 2 | 単眼 | |
- | ネガティブ | -10 | 2 | ||
ビット演算子 | ~ | ビット単位の否定 | ~x=-(x+1) | 3 | |
算術演算子 | * | 乗算記号 | 4 | 双目 | |
/ | 区切り記号 | 4 | |||
// | 割り切れる | 5//2=2 | 4 | ||
% | 残りを取る | 5%2=1 | 4 | ||
+ | プラス | 5 | |||
- | マイナス記号 | 5 | |||
ビット演算子 | << | 左方移動 | 16<<4=16*2*2*2*2 | 7 | 双目 |
>> | 右シフト | 16>>3=16/2/2/2 | |||
& | そして | 64&15=0 | |||
| | または | 64|15=79 | |||
^ | XOR | 64^15=78 | |||
関係演算子 | < | 未満 | 8 | 双目 | |
> | 以上 | ||||
<= | 以下 | ||||
>= | 以上 | ||||
== | 等しい | ||||
!= | 等しくない | ||||
論理演算子 | ない | いいえ | 9 | 双目 | |
そして | そして | 10 | |||
または | または | 11 |
1.1 ビット演算子
ビット演算は、整数の 2 進ビットに対して実行される演算であり、オペランドは標準のchar
データint
型である必要があります。
1.1.1 ビットごとの否定
ビット単位の反転は、各オペランドのバイナリ値を反転することです。つまり、0 が 1 に変更され、1 が 0 に変更されます。元のコードの逆コードを取得します。
例: 5 のビットごとの否定結果は -6
~00000101 / 10 進数 5 /
11111010 / 10 進数 -6 (2 進数は 2 の補数) /
ビット単位の否定の出現は、コンピューターにおける負の数の表現に関連しています
1.1.2 ビット単位の AND
ビットごとの ANDは 2 項演算子であり、演算に含まれる 2 つのオペランドは 2 進ビットに基づいて「AND」演算を実行します。数学の「交差点」に似ています。例: 15&3 の結果は 3 です。
00001111
&00000011
00000011
1.1.3 ビットごとの OR
ビット単位のORバイナリ演算子は、バイナリ ビットに基づいて、演算に参加する 2 つのオペランドに対して「OR」演算を実行します。数学の「和集合」に似ています。例: 15|32 の結果は 47 になります。
00001111
|00100000
00101111
1.1.4 ビットごとの XOR
ビットごとの XORも 2 項演算子であり、演算に関与する 2 つのオペランドは 2 進ビットに基づいて「XOR」演算を実行します。たとえば、15^3 の結果は 12 になります。
ビットごとの XOR を使用すると、2 つの数値の対応する 2 進ビットが同じか異なるかを簡単に判断できます。結果 0 は同じを意味し、結果 1 は異なることを意味します。
00001111
^00000011
00001100
1.1.5 左シフト
最初のオペランドの各ビットを 2 番目のオペランドで指定された桁数だけ左にシフトし、右側の空のビットを 0 で埋め、シフトされた左側のビットを破棄します。例: 15 とその 2 の補数コードを 1、2、3 ビット左にシフトしたものを次の表に示します。
左シフトを使用して整数乗算演算をすばやく実装できることがわかります。1 ビットずつ左シフトすることは 2 を乗算することと同等であり、n ビットずつ左シフトすることは 2 n を乗算することと同等です。アルゴリズムのハードウェア実装。
(6) 右シフト
第 1 オペランドの各ビットを第 2 オペランドで指定した桁数だけ右にシフトし、シフトした右のビットを切り捨てます。最初のオペランドが符号付き数値の場合、左の空きビットは符号ビットの値で埋められます。このシフトは算術シフトと呼ばれます。最初のオペランドが符号なし数値の場合、左の空きビットは 0 で埋められます。シフト論理シフトと呼ばれます。例: 15 と -15 はそれぞれ 1、2、3 ビット右にシフトされ、2 の補数コードは次の表のようになります。
右シフトを使用すると整数の除算演算をすばやく実装できることがわかります。1 ビットずつ右シフトすることは 2 1で除算することと同等であり、n ビットで右シフトすることは 2 nで除算することと同等です。アルゴリズムのハードウェア実装。
1.2 関係演算子
関係演算は、2 つのオペランドの値を比較するために使用される演算であり、比較の結果は論理値です。
文字列を比較する場合は、最初のシンボルの ASCIT コード値が使用され、同じ場合は次のビットが比較されます。
1.3 操作の順序
優先度の低いものから高いものまで計算されます
全体的な優先順位は、算術演算子 > ビット単位の演算子 > 関係演算子 > 論理演算子ですが、ビット単位の否定演算子の優先順位は、符号_
と算術演算子のべき乗の間にあります。+
-
**
1.4 動作方向
関係演算子を除き、演算の順序は左から右、その他の演算は右から左です。
2つの機能とモジュール
大規模な問題を解決できるプログラムは、通常、関数と呼ばれる数千の機能モジュールに分割されます。関数を使用すると、通常、プログラムの構造がより簡潔で理解しやすくなり、プログラムの可読性と再利用性が向上します。Python の関数の数には、組み込み関数、標準ライブラリ関数、サードパーティ ライブラリ、およびユーザー定義関数が含まれます機能。
2.1 組み込み関数
組み込み関数とは、外部からインポートせずに直接使用できる関数であり、関数を使用してdir(__builtins__)
表示することができます。以下はすべて Python 3.6 の組み込み関数です。
Python でよく使われる基本的な組み込み関数 | |
---|---|
関数名 | 関数 |
腹筋() | 数値の絶対値を返します |
ブール() | ブール型に変換します(パラメータがない場合は false を返します) |
int() | 整数に変換する |
浮く() | 浮動小数点数に変換する |
cmplex() | 複数に変換する |
str() | 文字列に変換する |
置き場() | 整数のバイナリ表現を返します。 |
otc() | 整数の 8 進表現を返します。 |
16 進数() | 整数の 16 進表現を返します。 |
ラウンド() | 統計上の偶数への丸めを返します |
タイプ() | パラメータの戻りデータ型 |
id() | オブジェクトの ID を返します |
全て() | 指定されたタプルまたはリストがすべて True であるかどうかを判断します (空のタプルおよび空のリストの戻り値は True です)。 |
どれでも() | 指定されたタプルまたはリストが True (空のタプル、空のリストの戻り値が True) であるかどうかを判断します。 |
アスキー() | 文字列を返します(非 ASCII 文字はエスケープ文字に変換されます)。 |
ヘルプ() | この機能のヘルプ情報を問い合わせる |
2.2 ライブラリ関数
2.2.1 標準ライブラリ関数
組み込み関数に加えて、Python には標準ライブラリ関数も用意されています。関数を使用する前にモジュールをインポートする必要があります。各ライブラリにはいくつかの関連関数があります。dir(模块名)
このモジュールのすべての機能を表示するために使用します
- モジュールをインポートする
>>> import math # 导入math模块
>>> math.floor(3.5) # 使用math模块的向下取整函数
3
- 複数のモジュールをインポートする
>>> import math ,os ,operator
- モジュールに関数を 1 つだけインポートします
from...import...
>>> from math import floor
>>> math.floor(3.5) # 使用math模块的向下取整函数
3
利点: もう書く必要はありませんmath.
。from math import *
すべてのプロパティと関数を数学モジュールにインポートできます。
- 利用
as
在导入时为模块增加别名,例如import numpy as np
表示导人numpy
模块并为其取一个别名np
,后续模块名numpy
均可用np
表示。
2.2.3 第三方库
第三方库提前下载后相当于标准库函数
可以在 PyPI 页面上搜索和安装、发布 Python 第三方库(模块)
安装其中的第三方库官方推荐使用Python 库管理工具 pip
,只要将第三方库下载到本地然后进行安装即可。
举例
安装安卓自动测试库atx
,步骤为:
- Python 官网下载文件 get-pip.py(目前 Python IDE 中一般都预装了 pip,不需要另外载和安装,直接使用第3步安装即可)
- 在命令提示符方式下运行如下命令安装 pip。
python get-pip. py
3 使用 pip 安装 atx 第三方库。
pip install atx
2.3 包
包是由模块和子包组成的一个应用程序执行环境,是一个有层次的文件目录结构
>>> import A. C. cl
>>> A. C. cl. foo(123)
或者
>>> from A. C. cl import foo
>>> foo( 123)
A
是最顶层的包,C
是它的子包,而 c1
是子包 C
中的模块。
2.4 标识符
在 Python 程序中,我们对于变量、方法、类、用户自定义函数等等可以由用户起名字,这些名字,我们把它统一的称之为标识符。
2.4.1 标识符命名的规则
- 内容限定:只能用
- 英文
- 中文(不建议)
- 数字(不能用于开头)
- 下划线
_
- 大小写敏感
- 不可使用关键字
2.4.2 标识符命名的常用方法
-
「名前を見れば意味がわかる」という原則に従って、各論理ブレークポイントを 2 つの方法でマークします:
Windows スタイル、キャメルケース命名法: 大文字は論理ブレークポイントをマークします (例:など)mathGrades
。Unix
スタイル、下線方法: 下線は論理ブレークポイントをマークします。としてmath_grades
。 -
変数内の英文字はすべて小文字である必要があります