设为首页 收藏本站
查看: 1086|回复: 0

[经验分享] Python初始基本数据类型

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-9 08:32:25 | 显示全部楼层 |阅读模式
数据结构分两部分:
1、单值
  数字
    整型:如果是32位机器,整数的位数为32位,取值范围为-2**32 ~2**31 -1,即:-2147483547~-2147483548
       如果是64位机器,整数的位数为64位,取值范围为-2**63~2**63-1
即:-9223372036854775808~9223372036854775807
    长整型:比较大的数字
    浮点型:3.14
    复数: z = a + bj
  布尔值:True(1), False(0)

示例①操作:

>>> i = 123
>>> print type(i)
<type 'int'>
>>> j = True
>>> print type(j)
<type 'bool'>
>>> name = 'alex'
>>> print type(name)
<type 'str'>
>>>

  字符串

  Python中的占位符%s和%d,分别表示给字符串和数字两种类型占位,后面来填充的值的类型必须是字符和数字

示例①
>>> name = 'i am %s'% 'tony'
>>> print name
i am tony
>>> name001 = 'i am %s,age is %d' %('alex',30)
>>> print name001
i am alex,age is 30
>>>

示例②
>>> name = 'i am {0},age is {1}, come from {2}'
>>> name.format("alex",30,"china")            
'i am alex,age is 30, come from china'
>>>


小结:Python的占位符可以通过%和{}来进行定义,两种方法的本质都一样,只是表现形式不同而已。Python有三种引号表示字符串分别是单引号('')、双引号("")、三引号(""" """),其中单引号和双引号表示单行的字符串,三引号可以表示多行的字符串


字符的索引:
示例①

>>> name = "alex"
>>> name[0]       #---------->获取字符串第1个字符
'a'
>>> name[1]       #---------->获取字符串第2个字符
'l'
>>> name[2]       #---------->获取字符串第3个字符
'e'
>>> name[3]      #------------>获取字符串第4个字符
'x'
>>> name[4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>>

字符切片:
示例②
>>> print name[0:2]     #------->获取字符串第1个和第2个字符
al
>>> print name[0:3]     #-------->获取字符串第1到第3个字符
ale
>>> print name[1:3]      #---------->获取字符串第2个到第3个字符
le
>>>
>>> print name[0:]      #----------->获取字符第1个和后面所有,即全部字符
alex
>>> print name[1:]      #------------>获取字符串第2个和后面所有,即从第2个开始到后面所有字符
lex
>>> print name[-1]       #------------>获取字符串倒数第一个字符,即从字符串最后一个字符
x
>>
注释:对于字符串切片,比如name【n:m】(n和m都是整数),代表的意思是左边包含右边不包含,即从第n个到第(m-1)个字符


求字符串中字符的个数(即字符串中有多少个字符):

示例③
>>> print name
alex

>>> print len(name)
4
>>>
如果想得到字符串最后一个字符可以用如下方法:
>>> print name
alex
>>>
>>> print name[-1]          #------------>打印字符串倒数第一个字符的下标
x
或者

>>> print name[len(name) -1]   #---->将字符串长度减去1之后的值作为字符串最后一个字符的下标
x
>>>
注释:对于字符串,索引(即下标)的最后一个值比该字符串的长度值小1


去掉字符串中的空格
示例④
>>> name = "    alex   "
>>> print name
    alex   
>>>
>>> print name.strip()      #------------->去掉字符串两端的空格
alex
>>> print name.lstrip()       #------------->去掉字符串左边的空格
alex   
>>> print name.rstrip()       #-------------->去掉字符串右边的空格
    alex
>>>


字符串的分割
split方法:将一个字符串按照指定的分隔符(','、‘a’、‘\t’)进行分割成一个列表
示例⑤
>>> names = "alex,eric,tony"
>>> names.split(',')
['alex', 'eric', 'tony']
>>> names.split('a')
['', 'lex,eric,tony']
>>> names.split('t')
['alex,eric,', 'ony']
>>>

字符串追加元素方法append,同时字符串的内存地址不会发生变化
示例⑥
>>> name_list.append('seven')
>>> name_list
['alex', 'seven', 'eric', 'seven']
>>>

>>> name_list.append('hello')
>>> id(name_list)            
140546186766960
>>>

>>> name_list
['alex', 'seven', 'eric', 'seven', 'hello']
>>>
字符串元素的删除方法del

示例⑦

>>> name_list
['alex', 'seven', 'eric', 'seven', 'hello']
>>> del name_list[0]
>>> name_list      
['seven', 'eric', 'seven', 'hello']
>>> del name_list[1]
>>> name_list      
['seven', 'seven', 'hello']
>>>

字符串如果被修改了,就要重新分配内存空间
示例⑧

>>> list1 = "good evening everyone!"
>>> id(list1)
140546186876528
>>> list1 = "good morning everyone!"
>>> id(list1)
140546186876656
>>>

2、集合
   列表
列表通过join方法连接变成字符串,连接的方式可以自己定义
示例①
>>> name_list      
['seven', 'seven', 'hello']
>>> "-".join(name_list)
'seven-seven-hello'
>>> " ".join(name_list)
'seven seven hello'
>>> "#".join(name_list)
'seven#seven#hello'
>>>

判断某个元素是否在列表里面用---in,返回结果是一个布尔值(False或True)
示例②

>>> name_list
['alex', 'seven', 'eric', 'seven', 'hello']
>>> "alex" in name_list
True
>>> "tony" in name_list
False
>>> "seven" in name_list
True
>>>



  元组

元组和列表的字面意义区别是:

A、元组用小括号定义(),列表用中括号[]
B、元组里面的元素是不可以修改、增加、删除,而列表中的元素是可以进行前面的所有的操作
C、元组和列表都可以进行切片、索引取值、通过len求长度、包含(in))、循环
D、字符串如果被修改了,那么就要重新分配内存空间
示例①
列表:>>>name_tuple = ('alex', 'seven', 'eric', 'seven', 'hello')
元组:>>>name_list = ['alex', 'seven', 'eric', 'seven', 'hello']


示例②

>>> list1 = ["alex",( 'seven', 'eric')]
>>> print list1
['alex', ('seven', 'eric')]
>>>
列表list1中:
第一个元素是alex,第二个元素是:( 'seven', 'eric')
可以对这两个元素进行修改,但是对于第二个元素( 'seven', 'eric')里面的元素就不能进行修改了,因为第二个元素是元组,再操作我们的操作对象就发生了变化。
我们常说的列表可以进行增、删、改等操作都是针对最小单元进行的
列表的最小单元是元素,元组的最小单元也是元素,但是在list1中,( 'seven', 'eric')虽然是一个列表,但是同时也是list1的一个元素,我们以整体将( 'seven', 'eric')替换掉,但是不能对( 'seven', 'eric')里面的元素做进一步的修改。

小结:
#切片、索引、len()、包含、循环对str、list、tuple都适用
str :如果被修改就得重新分配空间,内存地址发生变化
list :修改后,内存空间地址不变
tuple :不允许修改
dict:字典,键值对,字典无序,特殊的for循环.items(),

    keys() ---->列表
    vlaues()---->列表
    items()------->仅for 循环时使用,使用时将元素赋值给k、v(k和v可以自己定义)

for 循环结构
for ele in (list,str,tuple)
>>> for ele in name_list:
...     print ele
...
rick
cool
eric
seven
hello
>>>

>>> for ele in name_tuple:
...     print ele
...
alex
seven
eric
seven
hello
>>>

>>> for ele in str:   
...     print ele      
...
d
a
f
a
g
a
e
g
a
h
g
>>>

[iyunv@Python scripts]# vim find.py
#!/usr/bin/env python
#-*- coding:utf8 -*-
name_list = ['alex','xiaoyueyue','wenqiang']
for ele in name_list:
    if ele == "alex":
       print "sb"
       #本次循环不再继续执行
       continue
    if ele == "xiaoyueyue":
        print "find"
        #
        break


[iyunv@Python scripts]# python find.py
sb
find

while 循环结构
  while 条件:

     print '11111'
如果while后面的条件为真(即布尔值真)时,后面的语句一直执行下去;具体为:
spacer.jpg QQ截图20151109083216.png

提示:如果while 后为False,那么只会执行到①步,后面第②不会继续执行


   字典
字典是以键:值对的形式存储数据,定义如下字典:
person = {
      "name":'alex',
      "age":'18',
      "gender":"1",
}

person.keys() #--->所有的键
person.values() #---->所以的值
person.items() #--->所有的键值对(元素)

字典中的值都是与键成对出现的
for k,v in person.items():
     print k,v


[iyunv@Python scripts]# python  dict_test.py   
gender 1
age 18
name alex
[iyunv@Python scripts]#
发现打印的顺序并不是当初存储的顺序,所以说字典中的存储数据是无序的

for k,v in person.intems():
    print k #------->以列表的形式
    print v #------->以列表的形式
    print items() #------>所有元素


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-136775-1-1.html 上篇帖子: Python中定义字符串和修改字符串的原理 下篇帖子: Python的输入和输出以及流程控制语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表