老男孩Python全栈开发29期全套(2020年3月开班)-同步更新

- 程序是一个变量的一系列状态的变化
- 变量: 变量名 = 变量值,
变量值的引用计数如果为0后,会被当做垃圾进行回收.
import sys a = 23 print(sys.getrefcount(a)) #得到这个变量值引用了多少次 c = a print(sys.getrefcount(c)) #引用计数加1 del c #引用计数减1
3, 变量命名规则: 以数字,字母,下划线命名,不能以数字开头,变量名能见文望义,描述当前变量是干什么的.不要以python里的关键字来命名.
4, salary = 90000
id(salary) #查看变量salary 的变量地址
type(salary) #查看变量salary 的变量类型
python3中 值相等的变量 内存地址一样
python2中,值相等的变量,是2个独立的内存地址
5, is 是比较两个变量的内存地址是否同一个,也就是id()是不是同一个.
== 是比较两个变量的值是不是相等
6,小整数池
整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。
Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收
Python预先分配了这些整数的内存,为了加快程序运行时的速度.
所以在这个范围的数都是用的同一个内存地址,同一个对象.
https://blog.csdn.net/wangyunfeis/article/details/77607156
而在pycharm中,每次运行是所有代码都加载都内存中,属于一个整体,所以
这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。
a is b 这个实际的测试结果还是以终端为准.
那这个功能是不是在pycharm里会不准确,从而导致写程序会容易出问题,最好不要这么用?
is的功能pycharm和终端的表现不一样,慎用.
7, print(5 + 10.6)
整数可以和浮点数相加
8, sys.getrefcount(a)可以查看a对象的引用计数次数
9,变量名存的值的内存地址,放在栈区
变量值是存在堆区
10,

这个闲聊很有价值.
警惕符号里的价值影响你.
11, 位置形参,关键字形参

形参: 汇总
*args, 将形参里的多余的位置参数组成一个元组,赋值给args.
**kwargs,将形参里多除的关键字参数组成一个字典赋值给 kwargs
实参: 打散
func(*'hello'), 前面星号的作用,实际将实际打散成一个元组,func('h','e','l','l','o')
func(**{'a':1,'b':2}),前面的2个星号,作用将实参值转为一个关键字, func(a=1,b=2) 赋值
def wrapper(*args,**kwargs):
index(*args,**kwargs):
print('hello')
12,名称空间 namespace
内置名称空间,全局名称空间,局部名称空间
空间查找: 从当前的位置向外查找,从内向外找.
局部空间-->全局名称空间-->内置空间
以函数的定义阶段顺序为基准进行查找
mysql的学习:

忘记密码时也可以另外一套操作办法:
- 关闭mysql服务器
- sudo /usr/local/mysql/support-files/mysql.server stop #路径都相差不大.
- 也可以在系统偏好里有个MySQL里关闭。
- cd /usr/local/mysql/bin 进入目录
- sudo su 获取权限
- ./mysqld_safe --skip-grant-tables & 重启服务器
- 重开个终端,
- 进入cd /usr/local/mysql/bin, 输入mysql 进入mysql命令模式
- use mysql进入mysql数据库
- flush privileges; #大概就是获取权限
- set password for 'root'@'localhost'=password('123456新密码'); #完成修改
查看数据库的编码 \s

如何修改数据库的编码:
[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服务重启,再进入mysql进行查看,编码都改成了utf-8

库的增删改查:
增:
create database db1;
create database db2 charset='gbk';
查:
show databases;
show create database db1; #查单个的
改:
alter database db2 charset='utf8'; #改库的字符编码为utf8
删:
drop database db2;

表的增删改查:
查:
select database(); #当前所在哪个库
show tables;
show create table t1; #查看某一个表
describe DEPT; 表的字段类型等信息.
增:
create table t1(id int,name char(4));
改:
alter table t1 modify name char(16)
删:
drop table t1;
数据的增删改查:
查:
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
前端:
