Python基礎(chǔ)語(yǔ)法&進(jìn)制

1.基礎(chǔ)語(yǔ)法

1.基礎(chǔ)開(kāi)端

print("hello world")

2.快捷鍵

快捷鍵 名稱(chēng)
ctrl + / 添加注釋和取消注釋
ctrl + s 保存
ctrl + c 復(fù)制
ctrl + v 粘貼
ctrl + x 剪切
ctrl + z 撤銷(xiāo)
ctrl + shift + z 反撤銷(xiāo)
ctrl + f 查找
ctrl + r 替換
ctrl + a 全選

ps. 選中指定范圍的操作:鼠標(biāo)點(diǎn)擊選中開(kāi)始的位置 然后按住shift點(diǎn)擊結(jié)束位置
顯示多個(gè)光標(biāo):按住alt鍵再鍵鼠標(biāo)即可

3.基礎(chǔ)語(yǔ)法

1)注釋

注釋就是在代碼中不影響不參與執(zhí)行的語(yǔ)句或者文字,用以專(zhuān)門(mén)來(lái)對(duì)代碼進(jìn)行注解或者說(shuō)明。

"""
多行注釋1
多行注釋2
多行注釋3
……
"""
#這就是單行注釋

如上文所見(jiàn),多行注釋的方法是將文本或者說(shuō)明放在兩對(duì)"""或者'''之間;而單行注釋的方法是在注解前加上#。

2)語(yǔ)句

語(yǔ)句就是代碼行。在python當(dāng)中,一條語(yǔ)句結(jié)束后可以不用寫(xiě)分號(hào)(寫(xiě)也可以),但是在某些情況下(eg.一行寫(xiě)兩句話)也可以使用分號(hào)來(lái)分隔兩句話。

print("Hello",end="");print("World")
3)縮進(jìn)

在python中,格式要求非常嚴(yán)格。所以在一條語(yǔ)句的開(kāi)頭不能隨意添加縮進(jìn)(Tab)或者是空格。如果需要縮進(jìn)的時(shí)候(eg.if etc),則必須添加縮進(jìn)。

4)標(biāo)識(shí)符

標(biāo)識(shí)符是用以給變量、函數(shù)或者類(lèi)來(lái)命名的。標(biāo)識(shí)符的命名規(guī)則是:由字母、數(shù)字或者_(dá)組成;數(shù)字不能用以開(kāi)頭。(理論上其實(shí)漢字,日語(yǔ),韓語(yǔ)等也可以作為標(biāo)識(shí)符)

abc = 10
a_0 = 10
abc_a = 10

特別的:有兩個(gè)語(yǔ)法錯(cuò)誤需要記?。?br> abt+1 =10 SyntaxError: can't assign to operator
1a = 10 SyntaxError: invalid syntax

5)關(guān)鍵字

在python中有特殊功能或者特殊意義的標(biāo)識(shí)符就是關(guān)鍵字,又名保留字。
查看有哪些關(guān)鍵字可以這樣:

import keyword #導(dǎo)入系統(tǒng)keyword
print(len(keyword.kwlist)) #查看關(guān)鍵字?jǐn)?shù)量
print(keyword.kwlist) #打印所有關(guān)鍵字

查詢結(jié)果在python各版本中各有不同。在python3.7中有以下關(guān)鍵字:'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'。

6)常用數(shù)據(jù)

a)數(shù)字?jǐn)?shù)據(jù):用來(lái)表示大小的數(shù)據(jù),在程序中直接寫(xiě)。eg.100,18,12.5,2E3 科學(xué)計(jì)數(shù)法,支持負(fù)數(shù) ,復(fù)數(shù)2+5j 虛部用j
print(1j*1j)
b )文本數(shù)據(jù):文本信息對(duì)應(yīng)的數(shù)據(jù),在程序中需要用單引號(hào)或者雙引號(hào)引起來(lái),有些數(shù)據(jù)應(yīng)當(dāng)是文本而非數(shù)字(電話,id,身份證)
print("200")
eg."hello ","成都市","1550934040"
c )布爾數(shù)據(jù) :用True來(lái)表示真、肯定,用False來(lái)表示假、否定。唯二兩個(gè)值。
print(True)

7)常用數(shù)據(jù)類(lèi)型

數(shù)據(jù)是通過(guò)不同的數(shù)據(jù)類(lèi)型來(lái)分類(lèi)的。
整型(int) - 包含所有的整數(shù)
浮點(diǎn)型(float) - 包含所有的小數(shù)
字符串(str) - 文本數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)類(lèi)型
布爾類(lèi)型(bool) - True和False對(duì)應(yīng)的
其他: 列表(list) 字典(dict) 元組(tuple) 集合(set) 字節(jié)(bytes) 迭代器(iter) 生成器 函數(shù)(function)

我們可以通過(guò)type()來(lái)獲取數(shù)據(jù)的類(lèi)型:

print(type(True))

獲取到的結(jié)果:<class 'bool'>
即表示該數(shù)據(jù)的數(shù)據(jù)類(lèi)型是bool布爾型。

8)輸入和輸出函數(shù)

1)輸出函數(shù):print(數(shù)據(jù)) 在控制臺(tái)直接打印指定數(shù)據(jù) 在打印數(shù)據(jù)字符串的時(shí)候不會(huì)打印引號(hào)
輸入函數(shù): input

print(表達(dá)式) 打印表達(dá)式的結(jié)果
print(10+20) 運(yùn)算表達(dá)式 求和的結(jié)果打印

print(表達(dá)式1,表達(dá)式2,表達(dá)式3……) - 同時(shí)打印多個(gè)結(jié)果(在一行)

print("你好",123,'1+2',1+2)

a.定制換行
默認(rèn)的情況下,一個(gè)print中的內(nèi)容會(huì)在一行打印

print("hello world",end=";")
print("你好世界")

b.定制分隔
默認(rèn)情況下,一個(gè)print打印多個(gè)內(nèi)容的時(shí)候,多個(gè)內(nèi)容之間用空格隔開(kāi)

print(1,2,3,4,sep="+")

2)輸入函數(shù):input
變量 = input(輸入提示信息) - 用變量來(lái)獲取控制臺(tái)的內(nèi)容 獲取的結(jié)果都是字符串

age = input("請(qǐng)輸入年齡:")
print("============")
print("他的年齡是",age,type(age))

2.進(jìn)制

進(jìn)制在編程中有四種形式存在:二進(jìn)制,八進(jìn)制,十進(jìn)制和十六進(jìn)制。

1.十進(jìn)制

基數(shù):0,1,2,3,4,5,6,7,8,9
進(jìn)位:逢十進(jìn)一
位權(quán):123(10) == 100+20+3 == 110^2 + 210^1 + 3*10^0 從低位到高位0 1 2 次方
表示方式(python):直接寫(xiě)
轉(zhuǎn)換:直接打?。ㄆ渌魏晤?lèi)型打印出來(lái)直接是十進(jìn)制)

num1 = 123
num2 = 1234
print(num1+num2)

2.二進(jìn)制

基數(shù):0,1
進(jìn)位:逢二進(jìn)一 1+0 = 1 1+1=10
位權(quán):1011(2)=12^0 + 12^1 +02^2 +12^3 ==11(10)
表示方式(python):0b1011 加ob、0B
轉(zhuǎn)換:bin(其他進(jìn)制數(shù))

num3 = 0b1011
print(num3)

3.八進(jìn)制

基數(shù):0,1,2,3,4,5,6,7
進(jìn)位:逢八進(jìn)一 4+5 = 11
位權(quán):123(8) = 38^0 +28^1 + 1*8^2 = 83
表示方式(python):八進(jìn)制數(shù)前加0o/0O
轉(zhuǎn)換:oct(其他進(jìn)制的數(shù))

num4 = 0o123
print(num4)

4.十六進(jìn)制

基數(shù):0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(xiàn)(15)
進(jìn)位:逢十六進(jìn)一
位權(quán):1f(16) = 1516^0 + 116^1 = 31(10)
表示方式(python):十六進(jìn)制數(shù)前加 0x/0X
轉(zhuǎn)換:hex(待轉(zhuǎn)換的數(shù))

num5 = 0x1f
print(num5)

5.手動(dòng)運(yùn)算

# ================手動(dòng)進(jìn)制之間的相互轉(zhuǎn)換===========
# 1.十進(jìn)制轉(zhuǎn)換為其他進(jìn)制 輾轉(zhuǎn)取余法 不斷的除2/8/16取余數(shù)的方法
# 2.其他進(jìn)制轉(zhuǎn)十進(jìn)制 - 位權(quán)乘以對(duì)應(yīng)位置傷的基數(shù)然后求和
#0b1011 -> 2^0 +2^1 +2^3 =11
# 3.二進(jìn)制、八進(jìn)制和十六進(jìn)制的轉(zhuǎn)換
#  001 011 011(2) -> 133(8) 二轉(zhuǎn)八 切分三位一個(gè)
#  1011011= 0101 1011 = 5b(16)
# 76(8)-> 111 110   一位轉(zhuǎn)為三位二進(jìn)制 八轉(zhuǎn)二
# a3(16) ->1010 0011(2)
# 八進(jìn)制到十六進(jìn)制 先轉(zhuǎn)化為二進(jìn)制
# a3(16) ->10 100 011(2) -> 243(8)

3.原碼,反碼和補(bǔ)碼

計(jì)算機(jī)底層存儲(chǔ)數(shù)據(jù)只能存數(shù)字,并且存的是數(shù)字的補(bǔ)碼
計(jì)算機(jī)內(nèi)存大?。?最小單位是位)
申請(qǐng)內(nèi)存時(shí)最少用一字節(jié)(8位)

1bytes(字節(jié))= 8 bit(位)
1kb = 1024bytes
1mb = 1024kb
1G = 1024M
1T = 1024G

1.原碼

原碼 = 符號(hào)位 +(鏈接) 數(shù)字對(duì)應(yīng)的二進(jìn)制 【在數(shù)字的二進(jìn)制的最前面加符號(hào)】
符號(hào)位上0表示正,1表示負(fù)
正數(shù)的原碼、反碼、補(bǔ)碼都是一樣的,都是原碼

10(10) ->1010(2)
10(10) ->00001010(原碼)
-10(10) ->10001010(原碼) 最前面符號(hào)位

2.反碼

反碼就是原碼的符號(hào)位不變,其他的位全部取反(0變1,1變0)

-10 ->10001010(原碼) ->11110101(反碼)

3.補(bǔ)碼

補(bǔ)碼就是反碼加1
為什么計(jì)算機(jī)存負(fù)數(shù)的時(shí)候要存補(bǔ)碼:計(jì)算機(jī)只有加法器,只能進(jìn)行加運(yùn)算,
負(fù)數(shù)進(jìn)行運(yùn)算的時(shí)候用原碼不能正確計(jì)算,只有補(bǔ)碼才能。

-10 ->10001010(原碼) ->11110101(反碼) ->11110110(補(bǔ)碼)

4.練習(xí)

130的補(bǔ)碼:00000000100000010(原碼反碼補(bǔ)碼)
-130的補(bǔ)碼:10000000100000010(原碼) ->1111111101111101(反碼)
->1111111101111110(補(bǔ)碼)

3+2 = 5
3的補(bǔ)碼:00000011
2的補(bǔ)碼:00000010
3 + 2 = 00000011 + 00000010 = 00000101 ==5
3-2 = 1
3的補(bǔ)碼:00000011
-2的補(bǔ)碼:00000010(原碼)->11111101(反碼)->11111110(補(bǔ)碼)
補(bǔ)碼運(yùn)算:00000011(補(bǔ)碼)+11111110(補(bǔ)碼)=00000001(補(bǔ)碼) ->整數(shù)正反補(bǔ)一樣

二進(jìn)制中的運(yùn)算符

與運(yùn)算:&

兩者都為1則為1,否則為0

1&1 = 1,1&0 = 0, 0&1 = 0,0 & 0 = 0

或運(yùn)算:|

兩者都為0為0,否則為1

1 | 1 = 1, 1 | 0= 1, 0 | 1 = 1, 0 | 0 = 0

非運(yùn)算:~

1取0 0 取1

~1 = 0 ~ 0 = 1

~(1001) = 0110

異或運(yùn)算^

兩者相等為0,不等為1

1^1 = 0 1^0= 1 0^1 = 0 0^0 = 0

位運(yùn)算操作符:

有符號(hào):<<左移 >>右移

無(wú)符號(hào): >>>右移 忽略符號(hào)位,空位都以0補(bǔ)齊,不存在無(wú)符號(hào)左移,因?yàn)樽笠剖怯疫呇a(bǔ)0,有符號(hào)和無(wú)符號(hào)都一樣,所以沒(méi)必要

原碼 反碼 補(bǔ)碼 概念

計(jì)算機(jī)存儲(chǔ)一個(gè)數(shù)使用的是二進(jìn)制,最高位為符號(hào)位,其余位為數(shù)值;反碼:正數(shù)的反碼為原碼本身,負(fù)數(shù)反碼符號(hào)位不變,剩余的數(shù)字位取反;補(bǔ)碼:正數(shù)的補(bǔ)碼為原碼本身,負(fù)數(shù)的補(bǔ)碼為反碼+1

由于計(jì)算機(jī)只有加法沒(méi)有減法,所以1-1 被設(shè)計(jì)成 1 + (-1),使用補(bǔ)碼使得兩個(gè)相反數(shù)的補(bǔ)碼相加為0,同時(shí)符號(hào)位也參與運(yùn)算之中

與運(yùn)算 或運(yùn)算 異或 能怎么用:

與運(yùn)算:求兩個(gè)二進(jìn)制數(shù)的相同為1的位,

例如:n&(n-1)相差一個(gè)低位的1 ,所以可以用n&(n-1)循環(huán)來(lái)求二進(jìn)制中的1的位數(shù)。

或運(yùn)算:求兩個(gè)二進(jìn)制中相同為0的位,

例如:求一個(gè)四位二進(jìn)制數(shù)加上一個(gè)最小的數(shù)使它成為四位二進(jìn)制的最大數(shù)(我稱(chēng)之為滿二進(jìn)制)。1001 | 0110 = 1111,同時(shí)可以使用異或來(lái)求這個(gè)數(shù)1111 ^ 1001 = 0110

異或:求兩個(gè)二進(jìn)制數(shù)相同的位或者不同的位(相同的為0,不同的為1)

例如:可以使用一個(gè)滿二進(jìn)制(我自己理解的,比如說(shuō)四位滿二進(jìn)制為1111,八位滿二進(jìn)制位11111111)異或一個(gè)任意一個(gè)數(shù),就是表示這個(gè)滿二進(jìn)制數(shù)%任意數(shù),前提是這兩個(gè)二進(jìn)制數(shù)的最高位相等,比如說(shuō)1111 必須異或1xxx,而不能異或0xxx。

————————————————
版權(quán)聲明:本文為CSDN博主「DancingAlln」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_41313095/article/details/80814403

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容