一、输入
input("提示信息"):信息会被input加引号保存(用变量名储存)
如想获得纯数字字符串,可用int()转换一下
二、输出
%s:字符串,前有多少个%s,后可以按位置传%s( 实参一,实参二 ,···)但必须与前面的%s个数相同
若右边是字典,前面使用%(key)s即放入后面字典对应的每一项关键字(此传法可以打破位置限制)
%d:整型数字
还可以使用str.format:按照位置传值 前用{ }在整个字符串后调用format(实参一,实参二,···)
按照关键字传值 前用{ key1,key2}在字符串后调用format(key1=实参一,key2=实参二,···)
三、运算符
/:除,带小数
//:除,只保留整数
%:除,取余数
**次方,后面的是次方数
四、解压赋值
对于列表来说,可以直接使用 名字1,名字2,名字3,···=列表名 来挨个取出列表中的值,但是必须一一对应,名字个数必须同列表元素个数相同,解压字典默认解压的是关键字不是值
特殊:名字1,名字2,名字3,*_:就是取前三个
*_,名字1,名字2,名字3:就是取后三个
五、逻辑运算符
优先级:not(取反)>and(逻辑与)>or(逻辑或)
六、堆区与栈区
看个例子:简单描述定义一个变量x=10在内存中的栈区堆区的存放情况
栈区:存放的是变量名与内存地址的对应关系x,可以理解为:变量名存内存地址
堆区:存放的是变量值10
强调:只站在变量名的角度去谈一件事情,则变量名的赋值(x=y),还有变量名的传参(print(x))传递的都是栈区的数据(变量名与内存地址的对应关系,或者说是对值的引用)
七、直接引用与间接引用
直接引用:从栈区出发直接引用到的内存地址
间接引用:从栈区出发引用到堆区后,再通过进一步引用才能到达的内存地址
八、可变类型和不可变类型
可变类型:列表、字典:值改变了但id不变,证明改的是原值,原值可以被改变
不可变类型:int,float,str:值改变了id也变,证明产生了新值,原值不可改
九、杂七杂八
1、%%:把%当成普通字符
2、成员运算符in,not in判断一个子字符串是否在一个大字符串中(若是在字典里就是判断key的)
3、按索引值反向取:名字[-1]
4、从大字符串中切出子字符串来:名字[起始位置:终止位置]终止位置取不到
5、移除字符串左右两边的东西,默认去空格 .strip()可以在括号里自己定义
6、str.split(指定分隔符,指定分割次数):把字符串按照某种分隔符进行分割
7、字典中的值可以是任意类型,但是关键字必须是不可变类型