最新のPythonの基本と実際の戦闘第4章:キーワードとビット操作

キーワードとビット操作

1.続行
  • continueはキーワードです。continueに遭遇すると、現在のループはすぐに終了し、すぐに次のループの判断に入ります(continueに遭遇すると、ループは終了します)

演習:3で割り切れない1から100までのすべての数値の合計

方法1:

a = 0
for x in range(1, 101):
    if x % 3 == 0:
        continue
    a += x
print(a)
num = 0
for x in range(1, 101):
     if x % 3 != 0:
         num += x
 print(num)
2.ブレーク

breakはキーワードであり、ループ本体でのみ使用できます

ループの本体が実行されるときにブレークが発生すると、ループ全体が直接終了します

for x in range(4):
    print('-----------')
    print('++++++++++')
    break  # 执行到了break,直接结束了循环
    print('=========')
    print('//')
3. whileループを使用して、一緒にブレークします

Trueの場合:

操作を繰り返す必要があります

ifループの終了条件:

休憩

アプリケーション:whileを使用して1 + 2 + 3+を計算します。+100
num = 0
a = 1
while True:
    num += a
    a += 1
    if a > 100:
        break
print(num, a)

演習:3で割り切れる1000を超える最初の数値を見つけます

num = 1000
while True:
    if num % 3 == 0:
        break
    num += 1
print(num)
4.else

pythonの完全なforループ。

シーケンス内の変数の場合:
ループ本体
else:
コードセグメント

pythonでwhileループを完了します;
条件付きステートメントの場合:
ループ本体
else:
コードセグメント

forループまたはwhileループの後にelse構造を追加しても、元のループの実行には影響しません。
ループが正常に終了すると、ループが終了し、elseの下のコードが実行されます。ブレークが終了すると、
elseの下のコードセグメントは実行されません(elseの後のコードセグメントが実行されたかどうかを判断して、実行中にループでブレークが発生しなかったと判断できます。 )

  • 演習:数値が素数であるかどうかを判断します。
num = int(input('输入数字:'))
# for x in range(2, num):       # 方法1
for x in range(2, int(num**1/2+1)):      # 方法2
    if num % x == 0:
        print('不是素数')
        break
else:
    print(num, '是素数')

データストレージとビット操作

計算機はデータを保存し、バイナリデータのみを保存します(コンピューターには数値のみを格納する機能があり、この数値の2つの補数を格納します)

1.ベース

1)10進数

ベース:0,2,3、... 9キャリング
:すべての小
点累乗:10のn乗(0から開始)
プログラムでの表現:直接書き込む

2)バイナリ

ベース:0,1(001,110,101001)
キャリー:すべてのバイナリが1つ入力されます100 + 100 +>
ビットの重み:2のn乗(0から開始)
プログラムでの表現:プレフィックス/ 0b

3)オクタル

ベース:0、1、2、3。、7(134、276、137)
キャリー:8
ごとにキャリービットパワー:8からn乗(0から開始)
プログラムでの表現:直接書き込む

4)ヘキサデシマル

ベース:0 9、A F
キャリー:すべてのFキャリー1
ビット重量:16のn乗(nは0から始まります)
プログラムでの表現:プレフィックス、0x

2.ベース変換

1)他のベースをベース10に変換します:ベースにビットの重みの合計を掛けたもの

0B011-> 2 0 + 2 1 + 2 3 == 11

0o56-> 6 8 ** 0,5 8 ** 1

2)10進換算(残り法)

バイナリメソッドに変換、bin-他のベースをバイナリに変換、
オクタルメソッドに変換、oct-他のベースをオクタルに変換、
16進法に変換、16進-他のベースを16進数に変換

3.元のコード、逆コード、および補足
  • 元のコード、自分の補数、および正の数の補数は同じです
1)元のコード:符号ビット+真の値

真の値は、数値の絶対値のバイナリです。符号ビットの特徴は、0が正の値を表し、1が負の値を表すことです
。真の値10:1010 -10真の値:1010
元のコード10:01010、元のコード-10: 11010
コンピューターの10の元のコード:00001010 -10の元のコード:10001010

2)反転コード-符号ビットは変更されないままで、他のビットは反転されます

-10(1バイト)の補数:11110101

3)自分の補数-1人の補数プラス1

-10の補数:11110110

ビット操作:

&(ビットワイズAND)、|(ビットワイズOR)、^(ビットワイズXOR)、〜(ビットワイズ反転)、<<(左シフト)、>>(右シフト)
ビット操作の特徴:操作効率高い、低いメモリ消費;しかし複雑な計算を完了するのは難しい

  • 1)番号のパリティをすばやく判断します。番号と1は最下層を直接操作して、最後の桁が0か1かを判断します。0は整数、1は奇数です
    print(8&1)
  • 2)整数をすばやく2で乗算するか、2で除算しますオペランド番号<< 2
    print(8 << 1)

おすすめ

転載: blog.csdn.net/SaharaLater/article/details/111057464