劉清政,劉老師,老劉 ,justin
python開發:pycharm(收費),vscode(免費),sublintext,
go開發:goland(收費),vscode,國產的
j**a:idea(收費),eclipse(免費),myeclipse(收費)
android:androidstudio(免費),eclipse+adt
前端:webstorm(收費)
php:phpstorm(收費)
資料庫開發:data
jetbrains公司出的全家桶,乙個註冊碼,可以都用
androidstudio:買了jetbrains公司授權,在它基礎上,做了它
# 你出去之後開發環境:windows開發(主流),linux, mac
# sanic,fastapi框架,windows安裝不上(不支援),
# 裝了烏班圖(linux系統)在上面開發,或配mac本
# 或 遠端連線linux開發,遠端連linux內的docker開發
編譯型:
c:c**寫完,編譯(不同平台上),導致跨平台執行(差),例如 linux上 需原始碼安裝軟體,先自行編譯,再執行
j**a: 一處編碼,處處執行
j**a是編譯型還是解釋型?
編譯型編譯過程:把j**a源**編譯成位元組碼檔案 .class ---但該位元組碼不能直接執行在作業系統之上----》借助jvm(j**a虛擬機器 類似於python的直譯器,可以在不同平台上安裝,從而解決跨平台性差的問題)
但jvm執行至少要300m記憶體 (比較佔記憶體,故j**a中,有乙個優化問題:jvm調優)
jdkjre
jvmj**ase(基礎) j**ame(很老手機的j**a開發 不是安卓機,是塞班系統的j**a遊戲) j**aee(做j**a web開發)
go:編譯型,跨平台編譯(windows平台可以編譯出mac平台的可執行檔案),所有go**可直接打包成乙個可執行檔案 (對比python的優點)
解釋型:
python: 強型別動態語言
js:只能在瀏覽器中執行,nodejs(js做後端開發)
php:web開發
# 你們將來從從事的方向
2 自動化運維:收集伺服器軟硬體資訊(cmdb),jumpserver(堡壘機),sql審批,監控,日誌收集與處理
devops:ci/di
4 資料分析:
5 爬蟲:
6 量化交易
7 人工智慧,影象處理
8 安全方向:埠掃瞄,弱口令掃瞄,sql注入,csrf攻擊,xss攻擊(《python絕技:運用python成為頂級黑客》 提前看看)
9 網路方向
10 物聯網方向:硬體互動 (不走http協議,硬體檢測資料,用socket程式設計上傳資料)
# 申請乙個github賬號
# 維護乙個部落格(,自己寫的,hexo搭建)
python中一切皆物件
# type和object的關係
1 type是object的類 object是由type例項化得到
2 type繼承了object
3 type是type自己的類
總結:type 是所有類(包括自己)的元類,其他類都是由它例項化得到的
object 是所有類(不包括自己)的父類,其他類都繼承於它
a=int(2)
# int是乙個類,具體實現是由c語言實現的,如果寫了pass,看不到原始碼,有一部分可以看到
# print(type(1)) # int :數字1 的類是int
# print(type(int))
# print(type(dict))
# int dict 都是type類的物件
# int dict 繼承了object
# type和object是什麼關係?
# def a():
# pass
# print(type(a))
print(type(int)) # type
print(type(object)) # type
print(type(type)) # type
# 一切皆物件的好處
不同型別之間的變數直接可以相關賦值
a=100
a='***'
其實本質,變數都是指向了乙個記憶體位址,而不是直接指向資料本身 從而實現,變數可以通過賦值(指向其他的記憶體位址)來改變自己的資料型別
於是 出現了深淺copy問題
# 深淺copy問題
變數----->記憶體位址----->資料本身
l = [1,2,3,[4,5,6]]
l2 = l # 賦值 (是新的變數,指向同乙個記憶體位址)
print(l2 is l) # true
from copy import copy
from copy import deepcopy
l3 = copy(l)
print(l) # [1,2,3,[4,5,6]]
print(l3) # [1,2,3,[4,5,6]]
print(l is l3) # false 淺拷貝 (新的變數,指向了記憶體位址的乙個新淺拷貝位址)
l3[3][1]=999
print(l) # [1,2,3,[4,999,6]]
l4 = deepcopy(l)
l4[3][1] = 999
print(l) # [1,2,3,[4,5,6]]
print(l4) # [1,2,3,[4,999,6]]
print(l4 is l) # false 深拷貝 (新的變數,指向了記憶體位址的乙個新深拷貝位址,不管原位址有多少層 全部拷貝,全新的,兩個相互獨立)
#字典,列表,集合 可變型別
#數字,字串,元組 不可變型別
# 字典的key必須用不可變型別,可以hash
# 看一下這篇部落格
# python中的引數傳遞是值傳遞還是引用傳遞?
python中引數傳遞都是淺拷貝copy乙份傳遞過去,由於一切皆物件,傳過去都是位址,python中區分可變和不可變型別,可變型別在函式中修改會影響原來的,不可變型別不會影響原來的
# 計算機的計量單位:
bit位元位:0或者1的乙個小格
8個bit位是乙個byte,乙個位元組
1024個位元組---》1kb
1024kb---》1mb
1024mb---》1gb
1個位元組---》2的8次方 種變化,就可以表示出所有的字元(數字,字母,標點符號)
計算機到了中國---》中國漢字--》gbk編碼
但是到了不同國家,不同國家有不同國家編碼方式,就會出現亂碼問題
unicode編碼統一了,只是規定了字元和數字的對應關係
具體的儲存方式:
utf-8:目前主流的編碼方式 可變動的儲存
utf-16
需要說清楚:assic碼,gbk,unicode,utf-8
# 1 定義在函式內部
# 2 對外部作用域有引用
函式是一等公民:函式可以賦值給乙個變數
# 裝飾器是閉包函式的典型應用
# python中有裝飾器語法糖 @
def inner(*args,**kwargs):
# **
res=func(*args,**kwargs)
# **
return res
return inner
# 沒有語法糖
def a():
print("***")
a()
# 有語法糖
def a():
print("***")
# 面向切面程式設計 aop
# oop 物件導向程式設計
# 前後端傳資料三種編碼格式(urlencode、formdata、json) 傳json格式時,原生django不能從request.post中取出字典, 資料在request.body中
# 1.用中介軟體或者裝飾器前端不管傳json還是其他格式,requests物件中有個data屬性
CSS中的長度問題 Day76
今天沒有繼續昨天的問題,因為今天沒時間,從來就感覺自己在忙,不過可喜的是,以前我在忙著迷茫,現在我在忙著勵志.記得有句話說的特別好 那些想明白了就可以不做的事情,往往不做就想不明白 這句話讓我佩服很久,那些曾經的日子總在提醒我要珍惜現在。說說css的幾種距離吧,大致有px em pt pc in m...
前端學習 第一階段 day01
一 文字相關的標記 1.例如標題h1到h6 2.段落 3.標記 alt 當載入失敗的文字提示 title 滑鼠懸停時的文字提示 width 寬度 等比例縮放 3 2 height 高度 二 了解了一下修飾文字相關的標記 1.加粗 adsaudfbold 非語義標籤safsf語義化標籤 裝重要的 強調...
day16 階段總結
課程概要 在之前的課程中,我們學過global關鍵字。name root def outer name 小明 def inner global name name 123 inner print name outer print name 其實,還有乙個nolocal關鍵字,用的比較少,此處作為了解...