當前位置:外匯行情大全網 - 外匯匯率 - 2019-01-02

2019-01-02

1.使用位運算判斷壹個數是否是奇數

num & 1 ==0 num 是偶數

num & 1 ==1 num 是奇數

2.表達式0x13&0x17的值是(19 )

print(0x13)

print(0x17)

print(19&23)

3.若x=-20,y=3則x&y的結果是( 0)

4.表達式 -97 | 120 的運算結果是( -1)

5.在位運算中,操作數每右移壹位,其結果相當於(b )

A.操作數乘以2 B.操作數除以2

C.操作數除以4 D.操作數乘以4

6.設x 是壹個整數(16位).若要通過x|y使x低度8位置1,高8位不變,則y的二進制數是( )

7.總結常用的位運算使用技巧(自己查自己,覺得好用記得住的)

判斷壹個數的奇偶性(如果壹個數的二進制的最低位是1就是奇數,否則是偶數)

快速乘2的次方/除2的次方

加密,快速判斷兩個數是否相等

""" author = 余婷"""

"""

1.變量

a.怎麽聲明?

變量 = 值

a = b = c = 10

a, b = 10, 20

b.聲明變量和給變量賦值的原理

2.數字數據類型

整型(int),浮點型(float), 布爾(bool), 復數(complex)

3.運算符

數學: +,-,*, /, %, //, **

比較: >, <, ==, !=, >=, <=

邏輯: and, or, not

賦值: =, +=, -=, *=, /=, %=, //=, **=

位運算:

4.字符串

a.怎麽表示字符串

'字符串', "字符串",'''字符串'''

b.

'abc0-數\nkill\u4e00'

c.r/R - 阻止轉義

d.字符編碼-Unicode

ASCII

chr(編碼)

ord(字符)

e.獲取字符

字符串[下標]

字符串[開始下標:結束下標:步長]

f.相關運算

+, *

g.相關方法

5.分之和循環

if

if-else

if-elif-else

for 變量 in 序列:

循環體

range(N), range(M,N), range(M,N,step)

while 條件語句:

循環體

continue,break,else

6.列表

a.怎麽表示列表

[元素1,元素2,....]

[]

b.元素增刪改查

列表[下標]

列表[開始下標:結束下標:步長]

列表.append(元素)

列表.insert(下標,元素)

列表.extend(序列) - 了解

del 列表[下標]

列表.remove(元素)

列表.pop(), 列表.pop(下標)

列表.clear()

列表[下標] = 新值

c.相關操作

+,*

in / not in

len(), max(), min(), sum(), list(序列)

d.方法

列表.count(元素)

列表.index(元素)

列表.sort() -> 從下到大

列表.sort(reverse=True) -> 從大到小

列表.reverse() 類似 列表[::-1]

列表.copy() == 列表[:]

"""

list1 = [1, 2, 3]

list1.extend('abc')

list1.extend(range(15,21))

list1.extend([100, 200])

list1.append([111, 222])

print(list1)

print(3/1)

print(4/2)

print(4//3)

print(5.3//2)

""" author = 余婷"""

"""

numbers = 1

x = 0 ~ 19(循環20次)

x = 0 numbers = 1 2 = 2 = 2 1

x = 1 numbers = 2 2 = 2 2

x = 2 numbers = 2 22 = 2* 3

...

x = 19 ..... 2 20

"""

numbers = 1

for x in range(0, 20):

numbers *= 2

print(numbers)

"""

summation = 0

num = 1 (num = 1 ~ 100)

"""

summation = 0

num = 1

while num <= 100:

# 當num小於等於100的時候就執行下面語句

if (num % 3 == 0 or num % 7 == 0) and num % 21 != 0:

summation += 1

# 當num能被三整除或者被七整除的同時不能被21整除的時候,summation自加壹

num += 1

# num自加壹

print(summation)

"""

規律:當前數是前兩個數的和; 第n個數 = 第n-1個數+第n-2個數

n_2 = 0

n_1 = 1

"""

n = 6

n_2 = 0 # 當前數前兩個數

n_1 = 1 # 當前數的前壹個數

current = 1 # 當前數

for x in range(2, n+1):

current = n_2+n_1

n_2 = n_1

n_1 = current

print('第%d個數是%d' % (n, current))

"""

num = 101

x = 2 ~ 100

num = 102

x = 2 ~ 101

x = 2 , break

num = 103

x = 2 ~ 102

x = 2

x = 3

x = 4

...

x = 102

num = 104

...

"""

count = 0 # 個數

for num in range(101, 201):

# 判斷是否是素數, x範圍是2 ~ num-1

for x in range(2, num):

# 如果2~num-1之間有壹個數能被num整除,說明這個數不是素數!

if num % x == 0:

# print(num, '不是素數!')

break

else:

print(num, '是素數')

count += 1

print('101-200之間素數有:%d個' % count)

for num in range(100, 1000):

# 個位

ge_wei = num % 10

# 十位

shi_wei = num // 10 % 10

# 百位

bai_wei = num // 100

# 判斷是否是水仙花數

if ge_wei 3 + shi_wei 3 + bai_wei**3 == num:

print('%d是水仙花數' % num)

fen_zi = 1

fen_mu = 1

n = 20

for x in range(n):

fen_zi, fen_mu = fen_zi + fen_mu, fen_zi # fen_zi, fen_mu = 2+1, 2

print('%d/%d' % (fen_zi, fen_mu))

a = 10

b = 20

a, b = b, a # a, b = 20, 10

print(a, b)

""" author = 余婷"""

list1 = [1, 10, 220, 12, 9, 0] # 5//2

length = len(list1)

if length % 2 == 0:

print(list1[length//2 -1], list1[length//2])

else:

print(list1[length//2])

list1 = [1, 10, 220, 12, 9, 0]

print(sum(list1))

"""

isinstance(數據, 類型) --> 判斷指定的數據是否是指定的類型,返回值是布爾

例如:isinstance(10, int) --> 判斷10是否是整型

"""

list1 = [20, 'abc', [1, 2], 12.5, '123', -100]

sum1 = 0

for item in list1:

if isinstance(item, int) or isinstance(item, float):

sum1 += item

print(sum1)

list1 = [1, 2, 3]

for index in range(len(list1)):

list1[index] *= 2

print(list1)

"""

['張三', '李四', '大黃', '大黃', '張三', '張三']

name = '張三' , 3 > 1 ,names = ['李四', '大黃', '大黃', '張三', '張三']

name = '李四', 1 > 1

name = '大黃', 2 > 1, names = ['李四', '大黃', '張三', '張三']

name = '大黃', 1 > 1

name = '張三', 2 > 1, names = ['李四', '大黃', '張三']

name = '張三', 1 > 1

"""

names = ['張三', '李四', '大黃', '大黃', '張三', '張三']

for name in names[:]:

if names.count(name) > 1:

names.remove(name)

print(names)

list1 = [34, 892, 928, 10, 9282, 10023, 97]

for index in range(len(list1)):

list1[index] = chr(list1[index])

print(list1)

scores = [89, 89, 60, 90, 98, 100]

scores.remove(max(scores))

scores.remove(min(scores))

print(scores)

print('平均分:', sum(scores)/len(scores))

A = [1, 'a', 4, 90]

B = ['a', 8, 'j', 1]

C = []

for item in A:

if item in B:

C.append(item)

print(C)

""" author = 余婷"""

"""

1.十進制

a.基數:0,1,2,3,4,5,6,7,8,9

b.進位:逢10進1

c.位權:123(10) = 3 10 0 + 2 10 1 + 1 10*2

2.二進制

a.基數:0,1

0111, 1100, 101010101, 1111100011

b.進位:逢2進1

100(2) == 4(10) 101(2) == 5(10)

c.位權:101(2) = 1 2 0 + 0 2 1 + 1 2*2 = 5

3.八進制

a.基數:0,1,2,3,4,5,6,7

76, 26, 11

b.進位:逢8進1

c.位權:123(8) = 3 8 0+2 8 1+1 8 2 = 3+16+64 = 83

111(8) = 8 0+8 1+8 *2 = 1+8+64 = 73

4.十六進制

a.基數:0~9,a/A ~ f/F -- a/A(10), b/B(11), c/C(12), d/D(13), e/E(14), f/F(15)

1f, ff, abc, a00bf

b.進位:逢16進1

c.位權: 123(16) = 3 16 0 + 2 16 1 + 1 16*2 = 3+32+256=291

"""

num = 110 # 這是壹個10進制數

print(num) # 直接打印其他進制數就會顯示他的十進制

num = 0b1110

print(num) # 2+4+8

print(bin(800)) # 獲取壹個數對應的二進制表示方式

print(bin(0o671)) # 110111001

print(bin(0xaf)) # 10101111

print(bin(100))

num = 0o176

print(num)

print(oct(800))

print(oct(0b111000101)) # 0o705

num = 0xaf2

print(num)

print(hex(19968))

print(hex(175))

print(hex(255))

print(hex(0o456))

num1 = 17

num2 = 0b10001

num3 = 0o21

num4 = 0x11

print(num1, num2, num3, num4)

print(ord('壹'))

print('aaa\u4e00kl')

""" author = 余婷"""

"""

計算機存儲數據只能存儲數字數據,而且存的是數字的補碼。

計算機對數據進行運算的時候是使用補碼進行運算的,將數據從計算機中讀出來看到的是原碼

1.原碼:符號位+真值

說明:

符號位: 最高位用0表示正數,1表示負數

真值: 去掉正負,數字對應的二進制值

100的原碼:01100100

-100的原碼:11100100

2.反碼:

正數的反碼:就是原碼

負數的反碼:原碼的符號位不變,其余的位數取反(0->1, 1->0)

100的反碼:01100100

-100的反碼: 10011011

3.補碼

正數的補碼:還是原碼

負數的補碼: 反碼加1

100的補碼:01100100

-100的反碼:10011100

"""

"""

原碼:1110010

反碼:1001101

補碼:1001110

"""

"""

因為計算中只有加法器,沒有減法器

3 - 2 --> 3 + (-2) = 1

2 - 3 --> 2 + (-3) = -1

-3的原碼: 111 反碼:100 補碼:101

2的原碼: 010

原碼算:

2-3 = 111+010 = 001(原) = 1

補碼算:

010+101 = 111(補) = 110(反) = 101(原) = -1

-3 + -2 = -5

-3原碼: 1011 反:1100 補:1101

-2原碼: 1010 反: 1101 補: 1110

原碼算:

-3 + -2 = 1011+1010 = 0101(原) = 5

補碼算:

1101+1110 = 1011(補)=1010(反)=1101(原) = -5

"""

"""

數字1 & 數字2 --> 每壹位上的數都為1結果就是1,有0就是0

1 & 1 = 1

1 & 0 = 0

0 & 1 = 0

0 & 0 = 0

特點: 壹個位上的數如果和1與,可以保留這個位上的數; 和0與可以置0

應用:判斷壹個數的奇偶性(如果壹個數的二進制的最低位是1就是奇數,否則是偶數)

num % 2 == 0 --> num是偶數 (傳統)

num & 1 == 0 --> num是偶數

num & 1 == 1 --> num是奇數

"""

print(3 & 2) # 0011 & 0010 = 0010(補)

print(-3 & -2)

"""

-3: 1011(原) 1100(反) 1101(補)

-2: 原:1010 反: 1101 補: 1110

1101 & 1110 = 1100(補)=1011(反)=1100(原)

"""

print(2 & 1, 200 & 1, -100 & 1)

print(5 & 1, 111 & 1, -13 & 1)

"""

數字1 | 數字2: 只要有1結果就是1,兩個都為0結果才是0

1 | 1 = 1

1 | 0 = 1

0 | 1 = 1

0 | 0 = 0

特點: 和1或,置1

"""

print(3 | 2) # 0011 | 0010 = 0011(補)

print(-3 | -2) # 1101 | 1110 = 1111(補)=1110(反)=1001(原碼)

"""

~數字 : 將數字上的每壹位取反

~1 = 0

~0 = 1

"""

print(~3) # ~0011 = 1100(補)=1011(反)=1100

print(~-4) # ~~3 = 3

"""

數字1 ^ 數字2 : 相同為0,不同為1

1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

應用: 加密

"""

print(3 ^ 10997) # 3 ^ 2 = 1

print(10998 ^ 10997) # 1 ^ 2 = 3

"""

數字1 << N:數字1左移N位, 數字1 * 2 N

數字1 >> N: 數字1右移N位,數字1 // 2 N

應用:快速乘2的次方/除2的次方

"""

print(4 << 1)

print(-3 << 2)

print(5 >> 2)

  • 上一篇:新賽季湖人已經兩次輸給雷霆,妳怎麽看?
  • 下一篇:各位聽眾,早上好!!!
  • copyright 2024外匯行情大全網