1.python的注释
python中为了使代码更容易被人看懂,提高团队开发效率,可使用注释。代码中的注释不加入编译中。
注释有单行注释,如
#这是一段注释
和多行注释:
''' 这是一行注释 '''
当对代码的说明篇幅过大时,多用多行注释进行注解。
2.python的输入和输出
1.python语言中的输入
在解释器3.6版本中,输入函数input所输入的都会以字符串类型输出,而在2.7版本中,使用input输出需要先表明其数据类型,如下:
#3.6版本 input("输入") #输入lzx后输出lzx #2.7版本 input("输入") #输入lzx后会报错
可以看到在2.7版本中输入lzx后会报错,其工作流程是在输入lzx后,解释器会检索名为lzx的变量,再将其输出,而之前并未定义lzx变量,所以错误报告应该是检索lzx失败。所以要输入lzx首先定义变量a,在输出变量a的值即可,如下
a=‘lzx’ input('输入') #输入a后输出lzx
所以2.7版本和3.6版本的解释器input函数的区别在于3.6会将输入的东西自动转换成字符串类型,在2.7版本中也有一个函数可以将输入内容自动转换成字符串类型。
raw_input('输入') #输入lzx后输出lzx
所以得出结论2.7版本的raw_input等价于3.6版本的input。
3.格式化输出
在python中,输出一串字符串常用print,如输出”我的名字叫 lzx ,我的爱好是 轮滑!“
print("我的名字叫 lzx 我的爱好是 轮滑!")
然而如果lzx和轮滑在之前就以字符串的方式定义完成,如何输出呢,如下:
name='lzx' hobby='轮滑' print("我的名字叫"+name+"我的爱好是"+hobby)
这样是不是很麻烦呢,所以python中有格式化输出的概念,使用%占位符,先占位后定义。如下
print("我的名字叫%s,我的爱好是%s"%(‘lzx’,‘轮滑’))
除了字符串,占位符%d也可占数字类型的数据:
print("我的 年龄是%d岁"%18)
值得注意的是,当一个字符串中有使用占位符后,之后的%都会被视为占位符,如
print("本公司的%s分公司股份上涨了%2"%'上海')
此语句会出现报错,要使出现原句,可以在%前加一个%,就可获得真正的%。
4.python的数据类型
1.int整型
int型数据在日常编程时使用次数非常频繁,几乎处处可见,下面就定义了一个整型:
age=18
2.float浮点型
浮点型数据就是带有小数的数据,值得注意的是即使18.00这类的数据也是浮点型,不可等同于18。
balance=12.88 print(balance,type(balance)) #运行结果为 #12.88 <class 'float'>
3.str字符串
字符串的定义有三种:
#1.单引号 str1='我是字符串1' #2.双引号定义 str2="我是字符串2" #3.三引号定义 str3='''我是字符串3'''
其中三引号定义的字符串和多行注释标记相同,于是python中规定,当三引号之前没有定义变量的视为注释。
拥有多种字符串定义方式的目的是防止出现字符串中出现引号的情况。如
print('我的绰号叫'小李'')
如果这样输出,结果会报错,因为解释器分别不出哪个是字符串哪个是引号,所以这里需要双引号的字符串定义方法
print("我的绰号叫'小李'")
这样输出的结果才没有偏差。同理三引号是为了双引号的输出而存在,而且三引号可以写多行字符串。三引号可以是单也可以是双。
4.list列表
列表类似于C语言中的数组而优于数组,列表中可以存储的数据不仅仅是整型或浮点型,还可以存储字典,字符串甚至另一个列表,如
list=[1,2,'lzx',[1,18],{'name':'lzx','age':18}]
在取数据的时候,列表中是由0开始计数,计算机中大部分的计数都是从0开始,由左向右依次为list[0],list[1],list[2],list[3],list[4]。
5.字典
字典也能存储多种且多个数据,并且和列表不同的是它可以对存储的数据进行说明,采用key:value存储方式。例:
my={ 'name':'lzx', 'age':18, 'sex':'男', 'hobby':['轮滑','魔方'], 'you':{ 'name':'none', 'age':'none' } }
可以看到上面代码定义的字典”my“中定义了以字符串为关键字的成员,其中有各种数据类型,包括字典本本身在读取时和数列一样,例,我想要读取my中you字典里的name,如下:
print(my['you']['name'])
检索的时候不再依据存储顺序,而是根据key值,而且字典中是无序存储。
6.boolean布尔值
布尔值指向的值只有两种True和False,非正即负,非对即错,他和整型数据一样可以被变量定义,这里不再过多讲解,举个栗子:
x=100 y=100 print(x==y) print(x is y)
其中==是判断其值是否相同是则输出布尔值True,is是判断id是否相同,也是输出布尔类型,以上结果输出两个true。
*7复数
复数是由实部和虚部组成,如同x=a+bi,其中a为实部,b为虚部,i的具体值为i^2=-1,
在python中虚部的i被表示为j,所以定义一个复数如下:
a=2+3j
print(a,type(a))
其输出结果为2+3j,complex,complex代表的就是复数类型的数据。
复数中提供了两个函数以输出复数的实数部分和虚数部分,如下
a=2+3j
print(a.real,a.imag)
输出结果为2.0和3.0。
8.长整型lon
在python3.6中没有长整型的概念。
而在python2.7中可以以以下方式定义长整型,在定义int型变量时,只要达到long数据的定义条件时,即会自动转换成long类型,没有明确的定义过程。
a=12L
输出类型为long。
5.运算符
+,-,*,/这里不做太多介绍,值得注意的是/符号运算出的结果是带有小数点的
//运算出的除法是不带有小数点的。
%对除法运算取余。
2**n 2的n次方
!=不等于
+=,-=,*=,/=等运算。
(在字符串的比较规则中,是由其首个字符在ASCLL码表中的大小进行比较,如果相同,顺延到下一个字符)
链式赋值
x=y=z=10
交叉赋值
若要让x=10,y=20,两者的值交换,需要设置一个中间量temp,作为数据的中转
x=101 y=20 temp=0 temp=x x=y y=temp print(x,y)
在python中也有特定的方法交换其值
x=10 y=20 x,y=y,x
解压赋值
在列表的定义中,L=[1,2,3,4]
将该列表分别定义为a,b,c,d的值,我们可以用这种方法
L=[1,2,3,4] a,b,c,d=L print(a,b,c,d)
如果说其中b,c两个变量不需要,在python中公共规定使用_承接该数据
L=[1,2,3,4] a,_,_d=L print(a,d)
输出结果为1,4,或者这种方法
L=[1,2,3,4] a,*_,d=L print(a,d)
*_代替的就是整个列表的中间部分。
6.逻辑运算
逻辑运算符有以下几种:
与 and 只要有一个值为False,结果都为非
或 or 只要有一个值为True,结果都为是
非 not 将结果取反