python基础汇总_Python基础知识总结

Python 数据类型

一、整数

Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。

计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

二、浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

三、字符串

字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。

四、布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来。

布尔值可以用and、or和not运算。

and运算是与运算,只有所有都为 True,and运算结果才是 True。

or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。

not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。

五、空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

(或者# -*- coding:utf-8 -*- )

#coding:utf-8 // 如下字符串包含中文,如果不加这一行,报错:SyntaxError: Non-ASCII character

print('hello worlds打发')

print

print 'hello,python.'

print 'hello,','python.' //遇到逗号“,”会输出一个空格

print ('hello,python.')

print ('hello,'+'python.')

结果

注释

Python的注释以 # 开头。

变量

在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头。

在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。

a = 123 # a是整数

print a

a = 'imooc' # a变为字符串

print a

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。

静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):

int a = 123; // a是整数类型变量

a = "mooc"; // 错误:不能把字符串赋给整型变量

理解变量在计算机内存中的表示也非常重要。当我们写:a = 'ABC'时,Python解释器干了两件事情:

在内存中创建了一个'ABC'的字符串;

在内存中创建了一个名为a的变量,并把它指向'ABC'。

也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

a = 'ABC'

b = a

a = 'XYZ'

print b # b的值是'ABC',还是'XYZ'呢?

执行a = 'ABC',解释器创建了字符串 'ABC'和变量 a,并把a指向 'ABC':

执行b = a,解释器创建了变量 b,并把b指向 a 指向的字符串'ABC':

执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

所以,最后打印变量b的结果自然是'ABC'了。

字符串

字符串可以用''或者""括起来表示。字符串本身包含',用"",如果字符串包含",我们就可以用' '。

如果字符串既包含'又包含"怎么办?这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串用 \ 进行转义。

比如要表示字符串 Bob said "I'm OK".

可以写为:'Bob said \"I\'m OK\".'

注意:转义字符 \ 不计入字符串的内容中。

常用的转义字符还有:

\n 表示换行

\t 表示一个制表符

\\ 表示 \ 字符本身

如果要表示多行字符串,可以用'''...'''表示:

'''Line 1

Line 2

Line 3'''

Python中整数和浮点数

Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数。整数和浮点数混合运算的结果是浮点数。

为什么要区分整数运算和浮点数运算呢?这是因为整数运算的结果永远是精确的,而浮点数运算的结果不一定精确,因为计算机内存再大,也无法精确表示出无限循环小数,比如 0.1 换成二进制表示就是无限循环小数。

print 11/4 # 2

print 11%4 # 3

print 11.0/4 #2.75

Python中布尔类型

布尔运算在计算机中用来做条件判断,根据计算结果为True或者False,计算机可以自动执行不同的后续代码。

在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:

a = True

print a and 'a=T' or 'a=F' # 输出a=T

Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True。

要解释上述结果,又涉及到** and 和 or 运算的一条重要法则:短路计算**。

1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

构造list非常简单,按照上面的代码,直接用 [ ] 把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,这样,就可以通过变量来引用list:

classmates = ['Michael', 'Bob', 'Tracy']

由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:

L = ['Michael', 100, True]

一个元素也没有的list,就是空list:

empty_list = []

此外,list中又可以包含list

fan = [["liz",12],

["tom",23],

["Lisa",24]]

print type(fan) # 输出fan的数据类型

Python 索引访问list

L = ['hello', 'hi', 'bye']

print L[0] #输出hello

倒序访问list

我们可以用 -1 这个索引来表示最后一个元素

L = ['hello', 'hi', 'bye']

print L[-1] #输出bye

print L[-2] # 输出hi

print L[-3] # 输出hello

注意访问list,不要越界!

添加新元素

向list的尾部添加元素 append

L = ['Adam', 'Lisa', 'Bart']

L.append('Paul')

print L #输出 ['Adam', 'Lisa', 'Bart', 'Paul']

或者

L = L + ['hello']

print L # 输出 ['Adam', 'Lisa', 'Bart','hello']

向list指定的位置插入新元素用insert( )方法,接受两个参数,第一个是索引号,第二个是新元素。

L = ['Adam','Lisa','Bart']

想把一个新元素Paul插入到Adam的前面,也就是说Paul将要放在第一位

L.insert(0,'Paul') # 或者L.insert(-3,'Paul')

print L # 输出['Paul', 'Adam', 'Lisa', 'Bart']

从list删除元素

pop()方法总是删掉list的最后一个元素,并且它还返回这个元素。

L = ['Adam','Lisa','Bart','Paul']

L.pop() #输出Paul

print L #['Adam','Lisa','Bart']

如果想要删除的元素不是最后一个,则需要指定它的索引

# 比如想要删除Bart

L = ['Adam','Lisa','Bart','Paul']

L.pop(2) #输出Bart

print L #['Adam','Lisa','Paul']

还有del()方法

fan = [["liz",12],

["tom",23],

["Lisa",24]]

del(fan[1])

print fan

替换元素

对list的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。

L = ['Adam', 'Lisa', 'Bart']

#想要将Adam和Bart的位置变换一下

L[0] = 'Bart'

print L # 输出['Bart', 'Lisa', 'Bart']

L[-1] = 'Adam'

print L # 输出 ['Bart', 'Lisa', 'Adam']

tuple

tuple和list非常类似,但是tuple一旦初始化就不能修改。访问也是通过下标,用小括号() 表示。

t = ('Adam','Lisa','Bart')

print t # 输出('Adam','Lisa','Bart')

这个 t 就不能改变了,tuple没有 append()方法,也没有insert()和pop()方法。

获取 tuple 元素的方式和 list 是一模一样的,我们可以正常使用 t[0],t[-1]等索引方式访问元素,但是不能赋值成别的元素。

创建单元素tuple

包含0个元素的tuple,也就是空tuple,直接用()表示。

t = ()

print t #输出()

为避免歧义,单元素tuple要多加一个逗号“, ”

t = (1,)

print t # 输出 (1,)

多元素 tuple 加不加这个额外的“,”效果是一样的:

t = (1, 2, 3,)

print t # 输出 (1, 2, 3)

“可变”的tuple

t有3个元素,'a','b'和一个list:['A', 'B']。list作为一个整体是tuple的第三个元素。

t = ('a','b',['A','B'])

print t[2] # 输出 ['A','B']

将list的两个元素改一改

不是说tuple一旦定义后就不可变了吗?怎么现在又变了?

tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每一个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

if语句

直接上例子:

age = 20

if age >= 18:

print 'Your age is',age

print 'adult'

print 'END'

注意:Python的缩进规则,具有相同缩进的代码被视为代码块,进行缩进的时候,记住千万不要混用tab和空格,只许坚持用一种。

if语句后接表达式,然后用: 表示代码块开始

如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车:

>>> age = 20

>>> if age >= 18:

... print 'your age is', age

... print 'adult'

...

your age is 20

adult

if-else

score = 55

if score >= 60:

print 'passed'

else:

print 'failed'

if-elif-else

score = 85

if score >= 90:

print 'excellent'

elif score >= 80:

print 'good'

elif score >= 60:

print 'passed'

else:

print 'failed'

for循环

L = ['Adam', 'Lisa', 'Bart']

for name in L:

print name

while

计算100以内奇数的和

sum = 0

x = 1

while x < 100:

sum = sum + x

x += 2

print sum

break退出循环

用for循环或者while循环,如果要在循环体内直接退出循环,可以使用break语句。

# 计算1至100的整数和

sum = 0

x = 1

while True:

sum = sum + x

x = x + 1

if x > 100:

break

print sum

continue继续循环

在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环。

# 计算0-100中的奇数的和

sum = 0

x = 0

while True:

x = x + 1

if x > 100:

break

if x % 2 == 0:

continue

sum = sum + x

print sum

多重循环

对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,23(2 < 3)。

for x in [1,2,3,4,5,6,7,8,9]:

for y in [1,2,3,4,5,6,7,8,9]:

if x < y:

print x * 10 +y

dict

d = {

'Adam':95,

'Lisa':85,

'Bart': 59,

'Paul':75

}

访问dict

使用d[key]的形式来查找对应的value。

d = {

'Adam': 95,

'Lisa': 85,

'Bart': 59

}

print 'Adam:',d['Adam']

print 'Lisa:',d['Lisa']

print 'Bart:',d['Bart']

# 使用dict本身提供的一个get方法,在Key不存在的时候,返回None

print d.get('Bart') #输出59

print d.get('Paul') #输出None

# 判断key是否存在,用 in 操作符

if 'Lisa' in d:

print d['Lisa']

list的切片

# 索引 0 1 2 3 4 5 6 7

fam = ['ware', 12, 'Tom', 122, 'DS', 13, 'Lisa', 121]

# [起点:终点] 起点对应的包含,终点对应的不包含

print fam[3:5] # 输出[122,'DS']

print fam[1:4] # 输出[12, 'Tom', 122]

# 没有指定起点

print fam[:4] # 输出 ['ware', 12, 'Tom', 122]

# 没有指定终点

print fam[5:] #输出 [13, 'Lisa', 121]

关于list

将x赋给y,拷贝的并不是list 即x的内容,而是x的引用,即地址,x和y在内存中指向的是同一个地址。不管改变x的值,还是y的值,打印出俩者的值都是一样的,因为它们是同一个list。

要想完全创建一个新的list,和x一样的list,可以通过list(x) 或者list的切片方式x[:]

函数

list中的方法

# 获取某个元素的索引

L = ['Lisa','Paul','Bart','Paul']

L.index('Bart') # 输出2

# 某个元素在list中出现的次数

L.count('Paul') # 2

str的方法

将字符串的首字母大写

sister = 'lis'

print sister.capitalize() #输出Lis

# 替换某些字符

sister = sister.replace('s','sa')

print sister #输出lisa

# 获取某个字母在字符串中的索引

print sister.index('i') # 1

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值