1:关键字严格区分大小写!!!
2:py与c、c++一样都内置有关键字,我们可以使用代码来查看py里的关键字(这比c、c++要方便说实话),保留字要严格区分大小写,这点不要遗忘;
import keyword
print(keyword.kwlist)
3:标识符的命明,在命名上,py和c、c++保留了相同的风格,可以使用数字,字母来作为标识符,数字不能开头,但是这里,双下划线开头或结尾不能作为标识符,因为py里这些都有特殊意义;
规则:定义一个模块(.py文件),使用grame_main形式;
定义一个py包时,使用全小写加.分割;
定义类首字母大写,而在内部类中则需要在名字前面加入下滑线;
切记:变量名需要全大写,这样可以祈祷警示作用,也不会被随意修改;
4:变量的定义与使用:
py不需要定义变量类型,当你赋值给变量的时候,变量自动识别类型;
a=20
print(type(a))
a='asadn'
print(type(a))
执行这段代码的结果,你会发现a的类型前后发生了变化,从int变化了str,也就是字符串类型;
使用Id()函数可以查找变量的位置,注意,同一个值的变量即使后来改变,存储位置仍然不变;
eg:
a=20
print(id(a))
a='asadn'
print(id(a))
a=20
print(id(a))
输出结果为:
是不是很神奇?我也被震撼到了;在这个程序中,任意一个被赋值为20的变量,他的位置都会找到同一个位置,这与我们在c或者c++中学习到的知识是有一些差别的;
5:数据类型
注意,py中没有char类型,只有str类型,所有转换都是在str类型中进行的;
py相较于c与c++,里面内置了多种进制,二进制,八进制,十六进制;
6:round()函数,特别适用于float类型的变量,用法为:round(a,x),a为float类型的变量变量名,x为你要截取的小数点后的位数;
7:py内置了复数,使用变量名+.real可截取实数部分,使用变量名+.imag可截虚数部分;
a=123+456j
print(a.real,a.imag)
8:截取字符串,使用单引号可截取一行字符串,使用三引号可截取多行字符串;
9:转义字符:和c,c++一样,注意\t占8个空格位置,如果被占满的话,会再开启一个8个位置的空格;
10:字符串的索引
py的字符串有两种索引方式,分别是从低到高的递增索引与从高到低的递减索引,类似:
这里如果字符串为s。则s[0]与s[-6]表示相同;
切片:变量名[N:M],不取M,例:s[0:4]与s[-6:-2]表示的是同一个字符串;
a='123456'
print(a[0:4],a[-6:-2])
11:字符串类型的操作:+可以连接两个字符串(类似于c++里的string加法),*N意为输出N次,N在前面或者后面寓意相同,in关键字可以用来查找前面是否是后面的子字符串。
12:bool类型的值,有False和True(大小写不要忘记),这里与c与c++不同的是,bool类型的值可以参加整数的加减运算;
py里,所有的变量都有一个bool值,使用内置函数bool()可以查看;
特殊的:非零的数都为True,非空字符串都为True,False和None都为False,规则很好记;
a='123456'
b=''
print(bool(a),bool(b))
a=10
b=0
print(bool(a),bool(b))
a=False
b=None
print(bool(a),bool(b))
a=True
a+=10
print(a)
13:数据类型之间的转换:
隐式转换:整数/整数得到小数会自动转换成float类型;
显式转换:int(X)转换为int类型,float(),str(),同上,chr(X)是整数转字符串类型,对应ord(X)字符串转整数类型;
hex(X)整数转16进制,oct(X)整数转八进制,bin(X)整数转二进制,切记,转换出来的都是str类型,因为其他进制与十进制表示方法不同;
a='10'
a=int(a)
print(a,type(a))
a=float(a)
print(a,type(a))
a=str(a)
print(a,type(a))
a=10
a=chr(a)
print(type(a))
a=ord(a)
print(type(a))
a=10
print(hex(a))
print(oct(a))
print(bin(a))
结果:
事实证明:完全正确;
这里注意,无论是带不带负号的小数,转换成int都不会四舍五入,只会取整数部分;
14:eval函数,对于字符串类型的变量(切记,是变量),去掉单引号后把剩余内容的数据类型输出出来,当然,单引号下必须是一个可以转换成其他类型的字符串,例如12,1.23,123+456.但是不能是123a;
15,算术运算符;+,-,*,/,//,%,**。这里加入了**与//(整除),与/的区别是:我们之前直到int变float可以通过int()函数实现,也可以通过int/int隐式转换,这里我们如果计算123/10,得到的应该是12.3float类型,但是我们如果使用123//10,得到的将是12int类型;
**也就是幂,用法:2**3,答案为8;
16:支持双目运算:-=,+=,%=,//=等...
17:比较运算符,同c与c++,反回的都是bool类型;
18:逻辑运算符,同c与c++,但是这里样子发生了改变:and(与),or(或),not(非)。
19:位运算,同c与c++,&:有0则0,|有1则1,^相同为0,不同为1.
右移位时,高位为0补0,为1补1;
学习py第二天