1.基礎語法
1.基礎開端
print("hello world")
2.快捷鍵
| 快捷鍵 | 名稱 |
|---|---|
| ctrl + / | 添加注釋和取消注釋 |
| ctrl + s | 保存 |
| ctrl + c | 復制 |
| ctrl + v | 粘貼 |
| ctrl + x | 剪切 |
| ctrl + z | 撤銷 |
| ctrl + shift + z | 反撤銷 |
| ctrl + f | 查找 |
| ctrl + r | 替換 |
| ctrl + a | 全選 |
ps. 選中指定范圍的操作:鼠標點擊選中開始的位置 然后按住shift點擊結束位置
顯示多個光標:按住alt鍵再鍵鼠標即可
3.基礎語法
1)注釋
注釋就是在代碼中不影響不參與執(zhí)行的語句或者文字,用以專門來對代碼進行注解或者說明。
"""
多行注釋1
多行注釋2
多行注釋3
……
"""
#這就是單行注釋
如上文所見,多行注釋的方法是將文本或者說明放在兩對"""或者'''之間;而單行注釋的方法是在注解前加上#。
2)語句
語句就是代碼行。在python當中,一條語句結束后可以不用寫分號(寫也可以),但是在某些情況下(eg.一行寫兩句話)也可以使用分號來分隔兩句話。
print("Hello",end="");print("World")
3)縮進
在python中,格式要求非常嚴格。所以在一條語句的開頭不能隨意添加縮進(Tab)或者是空格。如果需要縮進的時候(eg.if etc),則必須添加縮進。
4)標識符
標識符是用以給變量、函數或者類來命名的。標識符的命名規(guī)則是:由字母、數字或者_組成;數字不能用以開頭。(理論上其實漢字,日語,韓語等也可以作為標識符)
abc = 10
a_0 = 10
abc_a = 10
特別的:有兩個語法錯誤需要記住:
abt+1 =10 SyntaxError: can't assign to operator
1a = 10 SyntaxError: invalid syntax
5)關鍵字
在python中有特殊功能或者特殊意義的標識符就是關鍵字,又名保留字。
查看有哪些關鍵字可以這樣:
import keyword #導入系統(tǒng)keyword
print(len(keyword.kwlist)) #查看關鍵字數量
print(keyword.kwlist) #打印所有關鍵字
查詢結果在python各版本中各有不同。在python3.7中有以下關鍵字:'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)常用數據
a)數字數據:用來表示大小的數據,在程序中直接寫。eg.100,18,12.5,2E3 科學計數法,支持負數 ,復數2+5j 虛部用j
print(1j*1j)
b )文本數據:文本信息對應的數據,在程序中需要用單引號或者雙引號引起來,有些數據應當是文本而非數字(電話,id,身份證)
print("200")
eg."hello ","成都市","1550934040"
c )布爾數據 :用True來表示真、肯定,用False來表示假、否定。唯二兩個值。
print(True)
7)常用數據類型
數據是通過不同的數據類型來分類的。
整型(int) - 包含所有的整數
浮點型(float) - 包含所有的小數
字符串(str) - 文本數據對應的數據類型
布爾類型(bool) - True和False對應的
其他: 列表(list) 字典(dict) 元組(tuple) 集合(set) 字節(jié)(bytes) 迭代器(iter) 生成器 函數(function)
我們可以通過type()來獲取數據的類型:
print(type(True))
獲取到的結果:<class 'bool'>
即表示該數據的數據類型是bool布爾型。
8)輸入和輸出函數
1)輸出函數:print(數據) 在控制臺直接打印指定數據 在打印數據字符串的時候不會打印引號
輸入函數: input
print(表達式) 打印表達式的結果
print(10+20) 運算表達式 求和的結果打印
print(表達式1,表達式2,表達式3……) - 同時打印多個結果(在一行)
print("你好",123,'1+2',1+2)
a.定制換行
默認的情況下,一個print中的內容會在一行打印
print("hello world",end=";")
print("你好世界")
b.定制分隔
默認情況下,一個print打印多個內容的時候,多個內容之間用空格隔開
print(1,2,3,4,sep="+")
2)輸入函數:input
變量 = input(輸入提示信息) - 用變量來獲取控制臺的內容 獲取的結果都是字符串
age = input("請輸入年齡:")
print("============")
print("他的年齡是",age,type(age))
2.進制
進制在編程中有四種形式存在:二進制,八進制,十進制和十六進制。
1.十進制
基數:0,1,2,3,4,5,6,7,8,9
進位:逢十進一
位權:123(10) == 100+20+3 == 110^2 + 210^1 + 3*10^0 從低位到高位0 1 2 次方
表示方式(python):直接寫
轉換:直接打?。ㄆ渌魏晤愋痛蛴〕鰜碇苯邮鞘M制)
num1 = 123
num2 = 1234
print(num1+num2)
2.二進制
基數:0,1
進位:逢二進一 1+0 = 1 1+1=10
位權:1011(2)=12^0 + 12^1 +02^2 +12^3 ==11(10)
表示方式(python):0b1011 加ob、0B
轉換:bin(其他進制數)
num3 = 0b1011
print(num3)
3.八進制
基數:0,1,2,3,4,5,6,7
進位:逢八進一 4+5 = 11
位權:123(8) = 38^0 +28^1 + 1*8^2 = 83
表示方式(python):八進制數前加0o/0O
轉換:oct(其他進制的數)
num4 = 0o123
print(num4)
4.十六進制
基數:0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(xiàn)(15)
進位:逢十六進一
位權:1f(16) = 1516^0 + 116^1 = 31(10)
表示方式(python):十六進制數前加 0x/0X
轉換:hex(待轉換的數)
num5 = 0x1f
print(num5)
5.手動運算
# ================手動進制之間的相互轉換===========
# 1.十進制轉換為其他進制 輾轉取余法 不斷的除2/8/16取余數的方法
# 2.其他進制轉十進制 - 位權乘以對應位置傷的基數然后求和
#0b1011 -> 2^0 +2^1 +2^3 =11
# 3.二進制、八進制和十六進制的轉換
# 001 011 011(2) -> 133(8) 二轉八 切分三位一個
# 1011011= 0101 1011 = 5b(16)
# 76(8)-> 111 110 一位轉為三位二進制 八轉二
# a3(16) ->1010 0011(2)
# 八進制到十六進制 先轉化為二進制
# a3(16) ->10 100 011(2) -> 243(8)
3.原碼,反碼和補碼
計算機底層存儲數據只能存數字,并且存的是數字的補碼
計算機內存大?。?最小單位是位)
申請內存時最少用一字節(jié)(8位)
1bytes(字節(jié))= 8 bit(位)
1kb = 1024bytes
1mb = 1024kb
1G = 1024M
1T = 1024G
1.原碼
原碼 = 符號位 +(鏈接) 數字對應的二進制 【在數字的二進制的最前面加符號】
符號位上0表示正,1表示負
正數的原碼、反碼、補碼都是一樣的,都是原碼
10(10) ->1010(2)
10(10) ->00001010(原碼)
-10(10) ->10001010(原碼) 最前面符號位
2.反碼
反碼就是原碼的符號位不變,其他的位全部取反(0變1,1變0)
-10 ->10001010(原碼) ->11110101(反碼)
3.補碼
補碼就是反碼加1
為什么計算機存負數的時候要存補碼:計算機只有加法器,只能進行加運算,
負數進行運算的時候用原碼不能正確計算,只有補碼才能。
-10 ->10001010(原碼) ->11110101(反碼) ->11110110(補碼)
4.練習
130的補碼:00000000100000010(原碼反碼補碼)
-130的補碼:10000000100000010(原碼) ->1111111101111101(反碼)
->1111111101111110(補碼)
3+2 = 5
3的補碼:00000011
2的補碼:00000010
3 + 2 = 00000011 + 00000010 = 00000101 ==5
3-2 = 1
3的補碼:00000011
-2的補碼:00000010(原碼)->11111101(反碼)->11111110(補碼)
補碼運算:00000011(補碼)+11111110(補碼)=00000001(補碼) ->整數正反補一樣
二進制中的運算符
與運算:&
兩者都為1則為1,否則為0
1&1 = 1,1&0 = 0, 0&1 = 0,0 & 0 = 0
或運算:|
兩者都為0為0,否則為1
1 | 1 = 1, 1 | 0= 1, 0 | 1 = 1, 0 | 0 = 0
非運算:~
1取0 0 取1
~1 = 0 ~ 0 = 1
~(1001) = 0110
異或運算^
兩者相等為0,不等為1
1^1 = 0 1^0= 1 0^1 = 0 0^0 = 0
位運算操作符:
有符號:<<左移 >>右移
無符號: >>>右移 忽略符號位,空位都以0補齊,不存在無符號左移,因為左移是右邊補0,有符號和無符號都一樣,所以沒必要
原碼 反碼 補碼 概念
計算機存儲一個數使用的是二進制,最高位為符號位,其余位為數值;反碼:正數的反碼為原碼本身,負數反碼符號位不變,剩余的數字位取反;補碼:正數的補碼為原碼本身,負數的補碼為反碼+1
由于計算機只有加法沒有減法,所以1-1 被設計成 1 + (-1),使用補碼使得兩個相反數的補碼相加為0,同時符號位也參與運算之中
與運算 或運算 異或 能怎么用:
與運算:求兩個二進制數的相同為1的位,
例如:n&(n-1)相差一個低位的1 ,所以可以用n&(n-1)循環(huán)來求二進制中的1的位數。
或運算:求兩個二進制中相同為0的位,
例如:求一個四位二進制數加上一個最小的數使它成為四位二進制的最大數(我稱之為滿二進制)。1001 | 0110 = 1111,同時可以使用異或來求這個數1111 ^ 1001 = 0110
異或:求兩個二進制數相同的位或者不同的位(相同的為0,不同的為1)
例如:可以使用一個滿二進制(我自己理解的,比如說四位滿二進制為1111,八位滿二進制位11111111)異或一個任意一個數,就是表示這個滿二進制數%任意數,前提是這兩個二進制數的最高位相等,比如說1111 必須異或1xxx,而不能異或0xxx。
————————————————
版權聲明:本文為CSDN博主「DancingAlln」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_41313095/article/details/80814403