我的Python学习之旅(02)

我的Python学习之旅(02)

  • 基本数据类型及变量的使用
  • list和tuple
  • 条件判断和循环
  • dict和set

好,接着上次的话题来说说Python的数据类型

首先,说个题外话,推荐学习python的大家去看看廖雪峰老师的博客,讲得十分详细,受益匪浅,适合我们这种新手小白,此篇数据类型的讲解就来自廖老师
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

在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.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

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

三、字符串

字符串是以”或”“括起来的任意文本,比如’abc’,”xyz”等等。请注意,”或”“本身只是一种表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c这3个字符。如果’本身也是一个字符,那就可以用”“括起来,比如”I’m OK”包含的字符是I,’,m,空格,O,K这6个字符。

如果字符串内部既包含’又包含”怎么办?可以用转义字符\来标识,比如:

'I\'m \"OK\"!'

表示的字符串内容是:

I'm "OK"!

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\,可以在Python的交互式命令行用print打印字符串看看:

>>> print 'I\'m ok.'
I'm ok.
>>> print 'I\'m learning\nPython.'
I'm learning
Python.
>>> print '\\\n\\'

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r”表示”内部的字符串默认不转义,可以自己试试:

>>> print '\\\t\\'
\       \
>>> print r'\\\t\\'
\\\t\\

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用”’…”’的格式表示多行内容,可以自己试试:

>>> print '''line1
... line2
... line3'''
line1
line2
line3

多行字符串”’…”’还可以在前面加上r使用,请自行测试。

四、布尔值

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

>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False

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

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

>>> True and True
True
>>> True and False
False
>>> False and False
False

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

>>> True or True
True
>>> True or False
True
>>> False or False
False

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

>>> not True
False
>>> not False
True

布尔值经常用在条件判断中,比如:

if age >= 18:
    print 'adult'
else:
    print 'teenager'
空值

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

此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型

list和tuple

python内置两种有序数组类型,list和tuple
list是一种有序的集合,可以随时添加和删除其中的元素
而tuple是元组一旦初始化就不能修改

list

>>> students = ['zhangsan', 'lisi', 'wangwu']
>>> students 
['zhangsan', 'lisi', 'wangwu']
  • 将元素插入到指定位置 —— insert
>>> students.insert(2, 'zhaoliu')
>>> students 
['zhangsan', 'lisi', 'zhaoliu','wangwu']

而直接这样赋值会把元素替换掉

>>> students[2] = 'zhaoliu'
>>> students 
['zhangsan', 'lisi', 'zhaoliu']
  • 获取列表个数—— len()
>>> len(students)
3
  • 删除列表末尾元素——pop()
>>> students.pop()
'wangwu'
>>> students
['zhangsan', 'lisi']
  • 删除列表指定位置元素——pop(x)
>>> students.pop(1)
'lisi'
>>> students
['zhangsan', 'zhaoliu']

  • 小技巧

一、当索引超出了范围时,Python会报一个IndexError错误

IndexError: list index out of range

所以,要确保索引不要越界,记得最后一个元素的索引是len(students) - 1

二、要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素

>>> students[-1]
'wangwu'

以此类推,可以获取倒数第2个、倒数第3个

三、list元素也可以是另一个list

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4

>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']

↑ 这样是不是更简洁易懂?其实就是个二维数组嘛

访问的话就是

>>>s[2][1]
'asp'

三、给list赋空值

>>> ls = []
>>> len(ls)
0

tuple

>>> students = ('zhangsan', 'lisi', 'wangwu')
>>> students 
('zhangsan', 'lisi', 'wangwu')

制造一个空的tuple

>>> t = ()
>>> t
()
  • 小技巧
    将tuple变成“可变”元组
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

相信大家都看懂了,变的不是tuple而是list,所以tuple本质上还是不可变的

剩下的,下次吧……

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值