老男孩Python全棧開(kāi)發(fā)29期全套(2020年3月開(kāi)班)-同步更新

- 程序是一個(gè)變量的一系列狀態(tài)的變化
- 變量: 變量名 = 變量值,
變量值的引用計(jì)數(shù)如果為0后,會(huì)被當(dāng)做垃圾進(jìn)行回收.
import sys a = 23 print(sys.getrefcount(a)) #得到這個(gè)變量值引用了多少次 c = a print(sys.getrefcount(c)) #引用計(jì)數(shù)加1 del c #引用計(jì)數(shù)減1
3, 變量命名規(guī)則: 以數(shù)字,字母,下劃線命名,不能以數(shù)字開(kāi)頭,變量名能見(jiàn)文望義,描述當(dāng)前變量是干什么的.不要以python里的關(guān)鍵字來(lái)命名.
4, salary = 90000
id(salary) #查看變量salary 的變量地址
type(salary) #查看變量salary 的變量類(lèi)型
python3中?值相等的變量?內(nèi)存地址一樣
python2中,值相等的變量,是2個(gè)獨(dú)立的內(nèi)存地址
5, is 是比較兩個(gè)變量的內(nèi)存地址是否同一個(gè),也就是id()是不是同一個(gè).
== 是比較兩個(gè)變量的值是不是相等
6,小整數(shù)池
整數(shù)在程序中的使用非常廣泛,Python為了優(yōu)化速度,使用了小整數(shù)對(duì)象池, 避免為整數(shù)頻繁申請(qǐng)和銷(xiāo)毀內(nèi)存空間。
Python 對(duì)小整數(shù)的定義是 [-5, 256] 這些整數(shù)對(duì)象是提前建立好的,不會(huì)被垃圾回收
Python預(yù)先分配了這些整數(shù)的內(nèi)存,為了加快程序運(yùn)行時(shí)的速度.
所以在這個(gè)范圍的數(shù)都是用的同一個(gè)內(nèi)存地址,同一個(gè)對(duì)象.
https://blog.csdn.net/wangyunfeis/article/details/77607156
而在pycharm中,每次運(yùn)行是所有代碼都加載都內(nèi)存中,屬于一個(gè)整體,所以
這個(gè)時(shí)候會(huì)有一個(gè)大整數(shù)對(duì)象池,即處于一個(gè)代碼塊的大整數(shù)是同一個(gè)對(duì)象。
a is b 這個(gè)實(shí)際的測(cè)試結(jié)果還是以終端為準(zhǔn).
那這個(gè)功能是不是在pycharm里會(huì)不準(zhǔn)確,從而導(dǎo)致寫(xiě)程序會(huì)容易出問(wèn)題,最好不要這么用?
is的功能pycharm和終端的表現(xiàn)不一樣,慎用.
7, print(5 + 10.6)
整數(shù)可以和浮點(diǎn)數(shù)相加
8, sys.getrefcount(a)可以查看a對(duì)象的引用計(jì)數(shù)次數(shù)
9,變量名存的值的內(nèi)存地址,放在棧區(qū)
變量值是存在堆區(qū)
10,

這個(gè)閑聊很有價(jià)值.
警惕符號(hào)里的價(jià)值影響你.
11, 位置形參,關(guān)鍵字形參

形參: 匯總
*args, 將形參里的多余的位置參數(shù)組成一個(gè)元組,賦值給args.
**kwargs,將形參里多除的關(guān)鍵字參數(shù)組成一個(gè)字典賦值給 kwargs
實(shí)參: 打散
func(*'hello'), 前面星號(hào)的作用,實(shí)際將實(shí)際打散成一個(gè)元組,func('h','e','l','l','o')
func(**{'a':1,'b':2}),前面的2個(gè)星號(hào),作用將實(shí)參值轉(zhuǎn)為一個(gè)關(guān)鍵字, func(a=1,b=2) 賦值
def wrapper(*args,**kwargs):
index(*args,**kwargs):
print('hello')
12,名稱(chēng)空間 namespace
內(nèi)置名稱(chēng)空間,全局名稱(chēng)空間,局部名稱(chēng)空間
空間查找: 從當(dāng)前的位置向外查找,從內(nèi)向外找.
局部空間-->全局名稱(chēng)空間-->內(nèi)置空間
以函數(shù)的定義階段順序?yàn)榛鶞?zhǔn)進(jìn)行查找
mysql的學(xué)習(xí):

忘記密碼時(shí)也可以另外一套操作辦法:
- 關(guān)閉mysql服務(wù)器
- sudo /usr/local/mysql/support-files/mysql.server stop?#路徑都相差不大.
- 也可以在系統(tǒng)偏好里有個(gè)MySQL里關(guān)閉。
- cd?/usr/local/mysql/bin????進(jìn)入目錄
- sudo su?獲取權(quán)限
- ?./mysqld_safe --skip-grant-tables &?重啟服務(wù)器
- 重開(kāi)個(gè)終端,
- 進(jìn)入cd?/usr/local/mysql/bin,?輸入mysql?進(jìn)入mysql命令模式
- use mysql進(jìn)入mysql數(shù)據(jù)庫(kù)
- flush privileges;?#大概就是獲取權(quán)限
- set password for 'root'@'localhost'=password('123456新密碼');??#完成修改
查看數(shù)據(jù)庫(kù)的編碼 \s

如何修改數(shù)據(jù)庫(kù)的編碼:
[MAC]添加my.cnf配置文件,可以從/usr/local/mysql-5.7.12-osx10.11-x86_64/support-files 里面拷貝 my-default.cnf 文件到 /usr/local/mysql-5.7.12-osx10.11-x86_64 目錄下.
增加下面的配置:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
然后mysql服務(wù)重啟,再進(jìn)入mysql進(jìn)行查看,編碼都改成了utf-8

庫(kù)的增刪改查:
增:
create database db1;
create database db2 charset='gbk';
查:
show databases;
show create database db1; #查單個(gè)的
改:
alter database db2 charset='utf8'; #改庫(kù)的字符編碼為utf8
刪:
drop database db2;

表的增刪改查:
查:
select database(); #當(dāng)前所在哪個(gè)庫(kù)
show tables;
show create table t1; #查看某一個(gè)表
describe DEPT; 表的字段類(lèi)型等信息.
增:
create table t1(id int,name char(4));
改:
alter table t1 modify name char(16)
刪:
drop table t1;
數(shù)據(jù)的增刪改查:
查:
select * from t1;
增:
insert into t1 values(1,'jenny'),(2,'you')
改:
update t1 set name='steven' where id=1;
刪:
delete fro t1 where id=1
前端:
