python语法基础

1. python常量与变量

1.1 常量

Python中在程序运行时不会被更改的量称之为常量,比如数字7和字符串"abc"在 运行时一直都是数字7跟字符串"abc",不会更改成其他的量,这些就是常量,除此 之外,还可以定义任意的字符串为指定值的常量. 

常量有一个特点,就是:一旦绑定,不能更改.

1.2 变量

Python中在程序运行时可以随着程序的运行更改的量称之为变量,比如我们可以定 义一个变量i,并将数字5赋给变量i,然后再将数字7再赋给变量i,那么这个时候i的 值就变成了7,i的值是可以改变的.那么像i这种可以改变值的量称之为变量. 

变量有一个特点,就是:即使赋值,也可以更改

i=5
print(i)
i+=1
print(i)
i+=2
print(i)

2.pyhton数与字符串

2.1 数的类型

Python中数的类型主要有5种,分为有符号整数型(int),长整型(long),浮点型(float),布尔型(bool),复数型(complex)。
例如:0、1、-1、1009、-290这些等等都是int型。
例如:87887l、-90990l、234567l这些等等都是long型。
例如:2.7788、3.277、8.88这些等等都是float型。
bool型只有两个:一个是True、一个是False。

例如:4+2j、-9+20j、56+7j这种类型属于复数类型。

2.2 字符串

在Python中用引号引起来的字符集称之为字符串,比如:'hello'、"my Python"、"2+3"等都是字符串。

2.3 引号的使用与区别

单引号:

c1='kb'
print(c1)
c2='It is  a "dog"'
print(c2)

双引号:

c1="kb"
print(c1)
c2="It's a dog"
print(c2)
单引号和双引号可以交叉使用。

三引号:

c1='''kobe
24
8
'''
print(c1)


三引号和单引号,双引号不可以混合使用。

2.4 转义符

在Python里面,如果需要输出一个It's a dog!这样的字符串,我们应该如何编写Python程序呢?有两种方法,一种方法是用我们刚才的单双引号间插使用的方法,即print "It's a dog!",用双引号来包含有单引号的字符串。那么还有其他的方法么?我们可以使用转义符\。

c1='It\'s a dog'
print(c1)

加上\这个转义符之后,第二个单引号不会被解析。

\n 表示换行:

c2="kb\nkb"
print(c2)

2.5 自然字符串

在Python里面,如果我们的一串字符串即使有转义符,也需要将他原样保留,不进行任何处理,我们可以使用自然字符串,即在字符串前加上r。

c1="kb\nkb"
print(c1)
c2=r"kb\nkb"
print(c2)

结果:

kb
kb
kb\nkb

字符串前面加r表示原样输出。
 

2.6 字符串重复

如果我们要将一个字符串重复的输出,我们可以手动输入外,还可以使用字符串的重复运算符。比如,我们要将hello重复输出20次,我们可以使用"hello"*20这种运算方法进行由计算机自动执行重复输出指令。

c1="kb\n"*20
print(c1)

2.7 子字符串

我们在编程的时候,比如字符串"jikexueyuan"中的"jike"、"yu"这些等都是"jikexueyuan"的子字符串。如果我们想取一个字符串中的子字符串出来,就要进行子字符串运算。而子字符串的运算方法主要有两种,一种是索引运算法[],另一种是切片运算法[:]

c1="asdfggdss"
c2=c1[6]
c3=c1[1:3]
c4=c1[:2]
c5=c1[1:]
print(c2)
print(c3)
print(c4)
print(c5)

切片(Slice)

L[0:3]表示从索引0开始取,知道索引3为止,但不包括索引3。即索引0,1,2三个元素。若第一个索引为0,则可写成L[:3];

L[-1]表示取倒数第一个元素。即倒数第一个元素的索引是-1;

L[:10]表示取前十个元素;

L[-10:]表示取后十个元素;

L[:10:2]表示前十个元素中每两个取一个;

L[::5]表示每五个元素取一个。

3 python数据类型

3.1 列表

在Python中没有数组的概念,Python中跟数组最接近的概念就是列表和元组,我们先说列表。列表就是用来存储一连串元素的容器。列表用[]来表示,比如说,一个班里面有30个学生,我们需要将30个学生安排到一间教室里面上课,如果把30个学生分别比作元素,那么这个教室就是数组。30个学生是按座位坐好,有序排列的,在数组中的元素也是有序排列的。

#列表
student=["0","1","2"]
print(student[0])

#修改
student[0]=3
print(student)

3.2元组

Python中跟数组类似的除了列表之外还有元组。元组里面的元素也是进行索引计算。但是列表跟元组有什么区别呢?一是列表里面的元素的值可以修改,而元组里面的元素的值不能修改,只能读取。区别二是列表的符号是[],而元组的符号是()。

student=("0","1","2")
print(student[0])

3.3 集合

Python中集合主要有两个功能,一个功能是建立关系,另一个功能是消除重复元素。集合的格式是:set(元素)

 
 
a=set("asdasdfg")
b=set("asc")

#交集
x=a&b
print(x)

#并集
y=a|b
print(y)

#差集
z=a-b
print(z)

#去除重复元素
new=set(a)
print(new)


结果:

{'s', 'a'}
{'g', 's', 'c', 'a', 'd', 'f'}
{'g', 'f', 'd'}
{'g', 's', 'a', 'd', 'f'}

3.4 字典

Python中的字典也叫做关联数组,用大括号{}括起来。格式是这样的:zidian={'name':'weiwei','home':'guilin','like':'music'}我们可以这样理解:字典里面其实包含的是一整个事情,这个事情里面分别包括各种方面的具体信息。比如我们刚才这个,包含了name方面、home方面、like方面的具体信息,其中name方面的值为weiwei,home方面的值为guilin,以及like方面的值为music。

Python 字典(Dictionary)操作详解

Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
一、创建字典
字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此创建字典

dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }

注意:
每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
键必须独一无二,但值则不必。
值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。


二、访问字典里的值
把相应的键放入熟悉的方括弧,如下实例:

复制代码

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
#以上实例输出结果:
#dict['Name']:  Zara
#dict['Age']:  7

复制代码

如果用字典里没有的键访问数据,会输出错误如下:

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Alice']: ", dict['Alice'];

以上实例输出结果:

#KeyError: 'Alice'[/code]

三、修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

复制代码

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry

 
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
#以上实例输出结果:
#dict['Age']:  8
#dict['School']:  DPS School

复制代码

四、删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:

复制代码

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

del dict['Name']; # 删除键是'Name'的条目
dict.clear();     # 清空词典所有条目
del dict ;        # 删除词典

print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
#但这会引发一个异常,因为用del后字典不再存在:
dict['Age']:

复制代码

五、字典键的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};

print "dict['Name']: ", dict['Name'];
#以上实例输出结果:
#dict['Name']:  Manni

2)键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行,如下实例:

dict = {['Name']: 'Zara', 'Age': 7};

print "dict['Name']: ", dict['Name'];
#以上实例输出结果:
#TypeError: list objects are unhashable

六、字典内置函数&方法
Python字典包含了以下内置函数:

cmp(dict1, dict2)  #比较两个字典元素。
len(dict)              #计算字典元素个数,即键的总数。
str(dict)              #输出字典可打印的字符串表示。
type(variable)     #返回输入的变量类型,如果变量是字典就返回字典类型。        

Python字典包含了以下内置方法:

复制代码

radiansdict.clear()    #删除字典内所有元素
radiansdict.copy()    #返回一个字典的浅复制
radiansdict.fromkeys()    #创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None)    #返回指定键的值,如果值不在字典中返回default值
radiansdict.has_key(key)    #如果键在字典dict里返回true,否则返回false
radiansdict.items()    #以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys()    #以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None)    #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2)    #把字典dict2的键/值对更新到dict里
radiansdict.values()    #以列表返回字典中的所有值

4 python标识符

4.1 标识符命名规则

在Python中标识符的命名是有规则的。按正确命名规则命名的可以使用的标识符叫做有效标识符,否则不能使用的标识符叫做无效标识符。有效标识符命名有以下几点规范:标识符第一个字符必须只能是字母或下划线,第一个字符不能出现数字或其他字符;标识符除第一个字符外,其他部分可以是字母或者下划线或者数字;标识符大小写敏感,比如name跟Name是不同的标识符

5 python对象

5.1 对象

Python的内置的对象类型主要有数字、字符串、列表、元组、字典、集合等等。其实,在Python中,一切皆为对象。

5.2 详解pickle腌制

在Python中如果我们有一些对象需要持久性存储,并且不丢失我们这个对象的类型与数据,我们则需要将这些对象进行序列化,序列化之后,需要使用的时候,我们再恢复为原来的数据。序列化的这种过程,我们将其称为pickle(腌制)。

pickle中的函数主要有:dumps(object),loads(string),dump(object,file),loads(file)

import pickle

#dumps(object)将对象序列化
lista=["a","s","d"]
listb=pickle.dumps(lista)
print(listb)

#loads(string)将对象恢复原样
listc=pickle.loads(listb)
print(listc)

#dump(object,file)将对象存储在文件里序列化
group1=("bajiu","wen","qingtian")
f1=open('1.pk1','wb')
pickle.dump(group1,f1,True)
f1.close()

#load(object,file)将dump()存储文件恢复原样
f2=open('1.pk1','rb')
t=pickle.load(f2)
print(t)
f2.close()

6 python行与缩进

6.1 逻辑行与物理行

Python中逻辑行主要是指一段代码,在意义上它的行数,而物理行,指的是我们实际看到中的行数。

6.2 行中分号使用规则

在Python中一个物理行一般可以包含多个逻辑行,在一个物理行中编写多个逻辑行的时候,逻辑行与逻辑行之间用分号隔开。每个逻辑行的后面必须是有一个分号的,但是我们在编写程序的时候,如果一个逻辑行占了一个物理行的最后,这个逻辑行可以省略分号。

6.3 行连接

我们已经知道,多个逻辑行可以写在一个物理行中,那么我们可不可以将一个逻辑行分别写在多个物理行中呢?可以的,但是我们必须使用行连接。行连接的方法是在行的最后加上一个\符号。

6.4 缩进

在Python中,逻辑行行首的空白是有规定的,逻辑行行首的空白不对,就会导致程序执行出错。这是跟其他语言一个很重要的不同点。

6.5 注释

Python中的注释一般用#进行注释,从#开始,一直到一行(物理行)结束的部分,都是注释。

猜你喜欢

转载自blog.csdn.net/qq_35654080/article/details/80981601