python学习(一)常见的数据结构

Python程序是大小写敏感的,另外我们可以为一个变量赋值多个类型的值,在python中通常常量是用大写单词来表示的,但是不保证开发者一定不能修改,所以更多的
时候,算是一种编程约束

python字符串

创建字符串

在python中创建一个字符串,只需要将字符串放在”“,”,”“” “”“当中即可

#声明当前使用的字符集
#coding=utf-8

a = 'hello'
b = "english"
c = """my name is test,\n \"china\""""
print a + "=="+b+"=="+c

此时输出如下:
这里写图片描述

字符串的下标是从0开始

#和java中是相同的,字符串的下标是从0开始的
a = "hello world"
print a[0]  #打印h
print a[:2] #第三个字符之前的所有字符
print a[2:] #第三个字符之后的所有字符
print a[2:5] #第三个字符到第六个字符之间的所有字符

这里写图片描述

字符串转换成int型或float型

#在python中同样可以实现像java中那样,将字符串转换成int型或float型

a = "12"
b = "3.5"
print int(a) + float(b)

将非法字符串转换成字符串表示

#在pyton中,同样提供,将非法字符串转换成字符串表示:str(),repr(),format(xx,xx)
x = 5.64
print str(x)
print repr(x)
print format(x,"0.1f")

这里写图片描述

python集合

在python中,集合是无序的,因此不能通过下标来进行索引,并且没有长度限制,用于包含一组无序的对象集合中的元素是不能重复的

使用set()函数创建集合

a = set(["11","123"])
print a   #set(['11', '123'])

这里写图片描述

集合中的元素是不能重复的

b = set(['g','o','o','d'])
print b  #set(['o', 'g', 'd'])可以看到两个o只会存在一个,并且是无序的

这里写图片描述

集合的操作

集合可以进行如下操作:
1.并集 2.交集 3.差集 4.对称差集

#并集
a = set([11,22,33,44])
b = set([33,44,66])
print a | b  # 输出: set([33, 66, 22, 11, 44])

#交集
print a & b  # 输出: set([33, 44])

#差集
print a - b  # 输出: set([11, 22])
print b - a  # 输出: set([66])

#对称差集
print a ^ b  # 输出: set([66, 11, 22])

集合的更新操作

c = set(['aa',22])
c.add('sss')  # add函数返回的是一个none的值
print c  # 输出: set(['aa', 'sss', 22])

c.remove(22) # remove函数返回的是一个none的值
print c  # 输出: set(['aa', 'sss'])   

python列表

python中提供了列表的数据结构,类似于java中的集合列表是有序的,即我们可以通过下标来访问数据

创建一个空列表

empty = []
empty = list()

创建一个列表,索引也是从0开始的

a = ["alice","tom","jerry","xiaoming"]

#可以通过len方法获取列表长度
b = ["alice","tom","jerry","xiaoming"]
print "b.length is :"+str(len(b))


#获取最后一个元素,可以使用-1作为索引
print "倒数第一 :"+b[-1]+"   倒数第二:"+b[-2]

列表尾部追加元素

给列表尾部追加元素,使用append方法

a.append("hanmeimei") # a = ["alice","tom","jerry","xiaoming","hanmeimei"]

删除列表尾部元素

# 删除列表尾部元素
b.pop()
print "倒数第一 :"+b[-1]+"   倒数第二:"+b[-2]

删除指定位置元素

# 删除列表指定位置元素
b.pop(2) # 下标从0开始
print "倒数第一 :"+b[-1]+"   倒数第二:"+b[-2]

列表中的切片功能

使用切片功能可以对提取列表中的元素,或对列表重新赋值

print "使用切片功能可以对提取列表中的元素"
b = ["alice","tom","jerry","xiaoming"]
c = b[0] 
print 'c is :'+c   # c = alice
d = b[0:2]  
print d  # d = ['alice', 'tom']
e = b[1:] 
print e  # e = ['tom', 'jerry', 'xiaoming']

print "对列表重新赋值"
b[0:2] = ["first","second"]
for x in b:
    print x

这里写图片描述

使用”+”运算符来连接列表

print "可以使用\"+\"运算符来连接列表"
a = [1,2,3] + [4,5,6]
print a  # a = [1, 2, 3, 4, 5, 6]

列表可以包含任意种类的对象

print "列表可以包含任意种类的对象"
a = ["aaa",11,22.5,["bbb","ccc",55]]
print a

这里写图片描述

对于列表中存在嵌套列表的情况

a = ["aaa",11,22.5,["bbb","ccc",55]]
print a[3][0] # a[3][0] = "bbb"

python字典

字典是一个关联数组,或者散列表,可以通过key得到value,类似于java中的map
字典中的键常用的有字符串,不过也可以用数值和元组,因为他们都是不可变的

创建一个空字典

people = {}
people = dict()

创建一个字典

创建一个字典,字典中的数据是放在{}中的

people = {
          "name" : "张三",
          "age" : 22,
          "phone" : 33333333
          }
print people  # {'phone': 33333333, 'age': 22, 'name': '\xe5\xbc\xa0\xe4\xb8\x89'}   打印中文乱码

可以看出Eclipse控制台的缺省编码方式是GBK;所以不支持UNICODE也在情理之中。如果把文件中的coding修改成GBK,则可以直接打印GBK编码的str对象
需要注意字典中的key是不可变的

删除对应的key

#删除一个key,对应的值也会删除
people.pop('name')
print people

访问字典中的成员

print people["name"]
print people["phone"]

插入或修改字典中的内容

people["name"] = "lisi" #修改name键所对应的值为"lisi"
print people  #{'phone': 33333333, 'age': 22, 'name': 'lisi'}

people["address"] = "guangdong"
print people   # {'phone': 33333333, 'age': 22, 'name': 'lisi', 'address': 'guangdong'}

使用in运算符测试某项内容是不是字典成员

if "name" in people :
    print people["name"]
else:
    print "字典people中没有该键值对"

获取默认值

如果从字典中获取不存在的键值对,可以填写一个默认值

value = people.get("califonia","no data in califonia")
print value

将字典转换成列表

value = list(people)
print value  # 获得字典中的所有关键字,可以将字典转换成列表 ['phone', 'age', 'name', 'address']

删除字典中的元素

#使用"del",删除字典中的元素
del people["name"]
print people

python元组

可以使用元组将一组值打包到一个对象中,元组是有序的,即我们可以通过下表来访问
读于元组而言,其大部分操作和列表是相同的,但需要注意的是,是创建好元组以后,元组是不能修改其内容的,这里的内容指的是元组每个元素的内存中的指向
列表相对于元组更加的灵活,可是如果创建大量的小列表会造成内存的浪费

a = (11,22.2,"bbb")
print a  #   (11, 22.2, 'bbb')

条件语句

在python中,没有像java那样的{}来区分代码快,在python中都是通过缩进来区别的

#if和else子句的主体是用缩进表示的,else子句是可选的
if True:
    print "this 条件 is True"
else:
    print "this 条件 is False"

#可以通过pass创建一个空语句
if 3 > 2:
    pass
    print "pass 后的语句还是会执行"



#python没有像java那样的switch语句,只能使用多个if elif语句来替代
suffix = "jpeg"
if suffix == "html":
    content = "text/html"
elif suffix == "jpeg":
    content = "image/jpeg"
elif suffix == "png":
    content = "image/png" 

print content

这里写图片描述

python格式化输出

如果需要添加中文注释,需要在python文件的最顶端,
添加这样一句代码:”#coding=utf-8”


#python格式化输出,使用格式化运算符
print "%3d %0.2f" % (2015,1098.0365)

#使用format()函数
print format(2015,"3d"),format(1098.0365,"0.3f")

#使用format()函数,一次性格式化很多值
print "{0:3d}  {1:0.4f}".format(2015,1098.036598)

python标准的输入输出流

import sys
sys.stdout.write("请输入您的姓名")
name = sys.stdin.readline()
print "您好 :"+name

这里写图片描述


#另外输出也可以使用print()函数来输出,比如:
print('hello world')    
#另外print函数也可以一次性输出多个字符串
print("firststring","secondstring","thirdstring")

这里写图片描述

python文件读取

###open()函数返回一个文件对象
f = open("C:\\Users\\admin\\Desktop\\python\\python.txt")
line = f.readline()
while line:
    print line
    line = f.readline()
f.close()

另外f流可能有时候因为某种异常不能关闭,这里python提供with as给我们的一个方便的写法,这样子,当操作完毕之后,f流会自动关闭

with open('f:/people.xml', 'r') as f:
    print(f.read())

此时效果如下:
这里写图片描述

写文件也是同样的道理

with open('f:/peoples.xml', 'w') as f:
    f.write('Hello, world!')

另外python还支持下面参数格式

open('f:/people.xml', 'r',encoding='gbk', errors='ignore')
#分别表示要读取文件的编码格式以及读取遇到错误时候,忽略该错误

同样可以使用for循环来实现

for line in open("C:\\Users\\admin\\Desktop\\python\\python.txt"):
    print line

ok, 今天就到这里啦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值