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