一、字符串
1.1 基本知识点
1.1.1 控制台输入
str = input("Input a string:");
print "The string is: ", str;
1.1.2 索引
python中的字符串索引有正向索引和反向索引两种。
正向索引是从左到右;
反向索引是从右到左;
strs = "012345678";
对于上面的字符串,正向索引最左边是开始位是 0,反向索引最右边开始位是 -1
字符串遍历:
strs = "0123456789";
for s in strs:
print s,
1.1.3 字符串基本操作
操作符 | 含义 |
---|---|
+ | 连接 |
* | 重复 |
[] | 索引 |
[:] | 切片 |
len(...) | 长度 |
for var in string | 迭代遍历字符串 |
1.[:] 符号
字符串切片,[start:end:step],下面是实例:
strs = "0123456789";
print strs[:];
print strs[:2];
print strs[4:];
print strs[2::2];
结果输出:
0123456789
01
456789
2468
这样很好理解字符串切片的具体含义。
- “*” 符号
输出重复的字符串,下面是实例:
strs = "0123456789";
print 3 * strs;
结果是:
012345678901234567890123456789
1.1.4 字符串函数
python有非常强大的字符串操作方法,所以python也经常被用来操作文本数据。刚开始学习了解一些基本的操作api即可,不需要一个个函数都琢磨透,等到用到了自然会熟悉。
python字符串操作api
1.find操作
正向find—— find
反向find—— rfind
strs = "0123456789012345";
index = strs.find("4");
rindex = strs.rfind("2");
print "index =", index;
print "rindex =", rindex;
执行结果如下:
index = 4
rindex = 12
2.join操作
join函数调用时:s.join(list),将列表连接到字符串上,使用s作为分隔符。这个也很有意思,文本操作中很多地方会用到这些函数。
list = ["abc","123","True", "edf"];
result = "#".join(list);
print "result = ",result;
结果如下:
result = abc#123#True#edf
python的字符串操作的功能太强大了,很有api,帮你封装好了很多功能。
1.2 类型转换
函数 | 含义 |
---|---|
float(...) | 转化为浮点值 |
int(...) | 转化为整型 |
str(...) | 转化为字符串 |
eval(...) | 将字符串作为表达式传值 |
1.3 字符串格式化
二、列表
字符串是字符序列,列表也是一种序列,只不过其中的元素既可以是字符串,可以是其他的元素。所以本质上来讲,列表和字符串很像。
2.1 列表定义
list = [];
for i in range(10):
list.append(3 * i);
print "list = ",list;
这个range函数,有3个参数,range(start,end,step),
是start<=index<end,记住是小于end
2.2 列表与字典
字典就是Java中的map,key-value对应的序列对。
python中字典的示例:
dict = {"a":1, "b":1,"c":6};
print dict;
print dict.get("a");
可以看出来python的定义和写法非常随意,和Java比起来,规矩少很多了。操作起来也非常灵活。
2.3 操作列表
- 修改列表元素
- 添加列表元素
- 删除列表元素
2.3.1 修改列表元素
names = ['tom', 'jack','sandy','frank', 'john'];
print names;
names[0] = 'sam';
print names;
操作之后第一个索引的元素就被修改了。
2.3.2 添加列表元素
- 添加在列表末尾
names = ['tom', 'jack','sandy','frank', 'john'];
names.append('world');
print names;- 插入列表任意索引位置
names = ['tom', 'jack','sandy','frank', 'john'];
names.insert(0, 'hello');
print names;
直接插入插入到0索引的位置,当前索引之后的元素都要移位。
2.3.3 删除列表元素
- del删除元素
names = ['tom', 'jack','sandy','frank', 'john'];
del names[0];
print names;
删除第一个索引的元素之后,之后的元素会自动补齐。- pop()与pop(...)删除元素
pop()是弹出列表中最后一个元素,pop(index)是弹出具体索引的元素。pop函数是有返回值的,del是没有返回值的,记住这个区别。- 根据值删除元素
使用remove方法
关于这个remove方法,下面这段代码比较一下:
names = ['tom', 'jack','sandy','frank', 'john'];
names.insert(2, 'world');
names.insert(5, 'world');
print names;
names.remove('world');
print names;
函数的输出是:
['tom', 'jack', 'world', 'sandy', 'frank', 'world', 'john']
['tom', 'jack', 'sandy', 'frank', 'world', 'john']
列表中有两个 world,但是remove之后只删除第一个world元素,这一点很特别,要记住。
2.4 列表函数拓展
2.4.1 排序函数
- 永久排序:所谓永久排序,是使用sort()操作完列表之后,再也无法恢复到原来的排列方式。
- 临时排序:使用sorted()函数,输出是排序好的列表,但是没有改变原来的列表结构。
- sort与sorted函数中都可以使用参数reverse=True,代表可以反向排序输出。
2.4.1.2 永久排序
names = ['tom', 'jack','sandy','frank', 'john'];
print "原来的序列:", names;
names.sort();
print "排序后序列:", names;
names.sort(reverse=True);
print "反向排序后序列:",names;
输出的结果如下:
原来的序列: ['tom', 'jack', 'sandy', 'frank', 'john']
排序后序列: ['frank', 'jack', 'john', 'sandy', 'tom']
反向排序后序列: ['tom', 'sandy', 'john', 'jack', 'frank']
操作完了之后已经改变了原来的序列。
2.4.1.3 临时排序
names = ['tom', 'jack','sandy','frank', 'john'];
print "原来的序列:", names;
print "临时排序后序列:", sorted(names);
print "原来的序列:", names;
输出的结果是:
原来的序列: ['tom', 'jack', 'sandy', 'frank', 'john']
临时排序后序列: ['frank', 'jack', 'john', 'sandy', 'tom']
原来的序列: ['tom', 'jack', 'sandy', 'frank', 'john']
操作完成后没有改变原来的序列。
2.4.2 列表反向输出
names = ['tom', 'jack','sandy','frank', 'john'];
print "原来的序列:", names;
names.reverse();
print "反转后序列:", names;
输出的结果是:
原来的序列: ['tom', 'jack', 'sandy', 'frank', 'john']
反转后序列: ['john', 'frank', 'sandy', 'jack', 'tom']
2.4.3 列表长度函数
计算列表的长度函数使用len(list)
三、文件
简单的文件操作,可以参考之前的文章《python起步》中的File操作。
本文章介绍一下温江对话框:
python安装中的tkinter GUI库提供了一系列简单易用的函数,用于创建获取文件名的对话框,允许用户可视化的选择要选择的文件,这样可以减轻用户的负担。
from Tkinter import *
from Tkinter import *
import Tkinter, Tkconstants, tkFileDialog
root = Tk()
root.filename = tkFileDialog.askopenfilename(initialdir = "/home/jeffmony/",title = "Select file",filetypes = (("jpeg files","*.jpg"),("all files","*.*")))
print (root.filename)

网友评论