一篇了解python

本文针对有一定其他编程语言知识的人,侧重在python特有的地方:

Python基础

针对有c++等语言基础的人,着重指出不同点

变量:

变量运算

Python变量不需要声明,也不需要指出变量类型。

除了常用的运算外,**表示幂运算,并不是^;

\\ 表示整除运算,只返回商的整数部分

 

并且python支持多条件比较,比如0<=middle<10

不同类型的变量是不能用大小比较的,但是支持==和!=比较

浮点类型和整数类型虽然不是同一种类型,但是可以进行比较

print(3.0>1)

结果为True

 

在Python中同样支持True =1; False=0,因此可以进行计算print(True+True-False)得到2;

 

 

in  is is not

把in放在两个对象之间,可以判断前者是否在后面的集合对象中。字符串类型、列表等有集合属性的都可以用。示例见list部分

is 和is not 表示身份鉴别的布尔运算符。在python中任何一个对象都要满足身份(identity)、数据类型(type)、值(value)这三者。is就是用来身份对比的。

 

       ==VS is

==是比较运算符,用来比较两个对象的值是否相等

is又叫同一性运算符,这个运算符比较的是对象间的唯一身份标识。

a=[1,2,3]
b=[1,2,3]
print(a==b,a is b)

得到的结果分别是True和False。不过若换作是字符串类型,由于其存储的特殊性,两个运算的结果都是True

 

 

python中所有变量都可以判断其布尔值,除了0、None、空的序列与集合(空字符串空列表等)外,其他都是True,可以由bool()函数来判断

字符串类型

表示和运算

不区分单引号和双引号的,可以直接用加号进行连接。Str = ‘aaa’;len(str)可以得到字符串长度;除了做加法,可以与整数相乘,比如str*3,会得到aaaaaaaaa

除了可以像c++ string一样的索引,即str[0]这样,还可以一次截取一段连续的:

Str=’aaaaaaaaaaaaaaaaa’;  print(Str[2:5])会输出第2个到第4个(从0开始的索引);甚至还可以用负索引,最后一个字符的索引是-1,倒数第二个是-2等等,print(Str[-5,-2])可以输出倒数第5个到倒数第3个。

 

Python中没有分号,而是使用缩进,所以同一行如果太长了想换行,要用\并且下一行缩进。在IDE中一般可以直接回车。

 

字符串类型还有一些内置的方法,比如replace()、find()

 

字符串格式化符,{}有点类似%d的占位作用,后面在点后跟format()举个例子:

print('{} is a good {}'.format('A','b'))

输出 A is a good b

还可以用数字指出分别填充哪个位置:

print('{1} is a good {0}'.format('A','b'))

还可以用一些名字来指明:

print('{name} is a good {name2}'.format(name='A',name2='b'))

 

有一些基本的类型转化函数,如str()  int()  float()等,不需要cast等强制类型转化

 

Python3以上的版本,输出函数是print(),中间可以有多个,用逗号隔开,默认是以空格间隔,如果想多个参数之间用换行的话可以加:

print('a=1','b=2',sep='\n')

 

函数

def 关键字定义函数。注意后面要加冒号,后面的函数体要缩进。其他语言通常是用大括号的,但是python没有

初次接触时冒号非常容易忘记。

def 函数名(参数):

       …

       return…

def func(b):
     c = b+2
     return c
print(func(4))

当不写return时返回的就是None

 

有多个参数时,一般c++中是按照顺序(当然类型要一致),但是Python中可以用形参指明位置:

def func(b,d):
     c = b+d
     return c
print(func(d=4,b=2))

这种叫关键词参数。在正序的时候两种传入甚至可以混用,但是当输入参数顺序与形参不一致时,必须全都使用关键词参数。

 

 

 

文件

open()打开文件,两个参数,文件路径和打开方式。

 

没写绝对路径,所以会在当前工作空间打开(没有的话会新建)一个文件,write函数可以直接向该文件中写入。

最后记得file.close()关闭文件

循环与控制结构:

if:

if condition:

[缩进]do sth.

elif condition:

[缩进]do sth

else:

[缩进]do sth

       通常其他语言是没有elif关键词的,自己的体验就是,如果不要IDE非常容易忘记冒号。

for:

for item in iterable:

[缩进]do stn

其中item是自己起的名字,表示后面课迭代集合中的一项,是可以在循环体中使用的名字。iterable就是可迭代的对象,列表啊数组一类。也是有冒号的。

while:

while condition:

[缩进]do sth

并不信箱,除了冒号跟很多其他语言的格式是一样的

 

内置数据结构:

python四种内置数据结构:列表、字典、元组、集合。

简单来讲,分别长这样:

lists=[1,2,"a",2.0,[1,2,4],print(1)]
dic = {
1:'a',2:'b'}
tuple =(
1,2,3,4,5)
set={
'a','b','c','d'}

 

 

列表

list[],有点像数组,但是各种类型都可以往里面放,甚至可以放新的列表。用list.append()就可以向列表尾部中新添加数据。索引与字符类型的相似。

newList=['a',1]
newList.append(2.0)
print(newList[-1],newList[1])

 

 

in

print('a'in newList)

可以输出True

In 关键字后面是一个集合形态的对象

 

 

列表中可以容纳python中的所有对象类型,并且可以被索引,如lists[0]

操作:

插入:lists.insetr(位置,待插入元素)

删除:lists.remove(要删除的元素),也可以用lists[0]=3直接替换掉原来0位置处的元素

索引:也是可以正反两个方向索引

 

 

Sorted()函数,会将列表复制一份,然后排序(但是列表里的元素得是可以互相比较的。)

zip()可以打包处理多个列表:

lists=[1,2,"a",2.0,[1,2,4],print(1)]
newlist=[
1,2,3,4,5]

fora,bin zip(lists,newlist):
   
print(a,'and',b)

不过是以最短的列表长度为对应的循环次数。

结果:

1 and 1

2 and 2

a and 3

2.0 and 4

[1, 2, 4] and 5

 

 

列表推导式:

li=[ifor i in range(1,10)]

for a in li:
   
print(a)

会输出1-9

也就是lists = [item for   item in iterable]

 

在循环列表同时得到元素的索引:

Python特有的函数enumerate

fornum ,itemin enumerate(lists):
   
print(num,item)

 

字典

字典的特征是每个元素都是一对键-值对。键不可重复而值可以。键不可变而值可变,且值可为任意类型。

插入:

可以用这样的方式进行字典的插入:

dic['d']='e'
print(dic)

还可以用这样的方式进行批量插入:

dic.update({4:'a','e':6})
print(dic)

删除:del方法

deldic[2]

索引:仍然是用中括号,但是不能切片,中括号中放的一定是键,只能通过键来索引

元组

相当于固定的列表,是不可以修改的——不能增加或删除,但是可以索引

集合

无序的、不重复的。不能被切片也不能被索引。可以做集合运算、添加和删除。

set.add('e')
set.discard(
'a')

print(set)

 

 

第三方库

可以再awesome-python.com上查找python库。

安装python库:

可以利用IDE如Pycharm,file->default settings->进入project interpreter,选择当前的python版本,点击添加,然后搜索库->勾选并install

可以在project interpreter里查看安装了什么库

 

也可以在终端中pip install 库名来安装


条件:

python中经常会有非常简单的条件表示:

[w for w in W if condition]

就会保存所有W中符合条件condition的w到列表中

对每个元素进行操作:

[f(w) for ...]  或[w.f() for ...]

如:w.lower() for w in text1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值