python简单的使用(二)
来源:互联网 发布:开发人员从事数据分析 编辑:程序博客网 时间:2024/05/18 03:23
1. Python中的错误检测
前面已经知道了input()和raw_input()的用法了,input()会在接收了“字符串”的输入之后进行一些处理,比如你是输入1+2,然后输出的就是3了,而raw_input就是原原本本的1+2的输出了。
print input()输入英文字母shiyuezhong之后就会出现异常:
Traceback (most recent call last): File "F:/Python27/1", line 1, in <module> print input() File "<string>", line 1, in <module> NameError: name 'shiyuezhong' is not defined
现在要做的就是捕捉这种由用户输入引起的错误。这么来做:
try: print input() except: print 'there is an error in your input'
这下你无论怎么输入都不会有什么其他的提示了,就是自己设定的print语句作为提示。 现在把try except的组合去掉,回到print input()你再尝试一下:
1/0 这个显然是一个错误,被零除的错误。那么专门来捕捉一下这个错误:
try: print input() except ZeroDivisionError: print 'can not be divided by zero'
所以最终的代码如下:
try: print input() except ZeroDivisionError: print 'can not be divided by zero' except: print 'there is an error in your input'
捕捉所有错误的except必须放在所有的except的最后一位。
2. 函数的使用
def square(x): return x**2 print square(7)
def表示这个开始定义一个函数,x是参数,参数是不需要类型的,因为python是不需要明确指出类型的。return是返回值,返回的值插入到调用函数的地方。
def swap(a, b): return (b,a) print swap(1,2)
这里返回的并不是两个值,而是一个值。 (b, a)就是一个元组(turple),你可以用这样的方式成生一个元组,并使用它。元组是基本的变量类型:
my_turple = (1, 2, 3)my_list = []for i in my_turple: my_list.append(i)print my_list
元组和列表非常像,但是列表的长度是可以变化的,而且成员是可以改变的。但是元组是什么都不能变的,是只读的。
3. 文件的操作
首先是建立关联...假设在存在以下文件 c:\a.txt 里面内容为:
This is line #1
This is line #2
This is line #3
END
代码:
>>> xxx = file('c:\\a.txt', 'r')>>> xxx_content = xxx.read()>>> print xxx_contentThis is line #1This is line #2This is line #3END>>> xxx.close()>>>>>> infile = file('c:\\a.txt', 'r')>>> xxx = file('c:\\a.txt', 'r')>>> for xxx_line in xxx.readlines(): print 'Line:', xxx_lineLine: This is line #1Line: This is line #2Line: This is line #3Line: END>>> xxx.close()>>>
file里关键字的第一部分,是文件路径及名称。注意这里面,路径需要用\\
第二部分,是对文件的模式或者叫权限,一般有以下3种 "r" (read), "w" (write)和 "a"(append).
利用xxx_content = infile.read() 和 xxx_content = infile.readlines() 来读取文件内容。
然后是文件的写入:
>>> xxx=file('c:\\test.txt','w')>>> xxx.write('shiyuezhong')>>> xxx.write('testtest')>>> xxx.write('enter\n')>>> xxx.writelines([' shiyuezhong ','buding'])>>> xxx.close()>>>>>> xxx=file('c:\\test.txt','r')>>> content=xxx.read()>>> print contentshiyuezhongtesttestentershiyuezhongbuding>>>需要注意的是...在xxx.close()之前,c盘下面只有一个空空的test.txt,xxx.close()的作用相当于最后的存盘。
4. 类的使用
class person: def __init__(self): self.name = 'taowen' self.id = 20022479 def say_id(self): print "%s's id is %d" % (self.name, self.id)me = person()me.say_id()
类:是class关键来定义的。class person:就是说定义一个类,名字叫person。
对象: 是用类来产生的。所以me就是对象,产生的办法就是像调用函数一样,person(),而且()中是能够放参数的,什么时候要参数,看下面的“初始化函数“。
初始化函数:类可以有自己的初始化函数,每次类被创建的时候(调用person()这样的语句的时候),都会调用它。__init__是必须的名字,不能用其他名字来当初始化函数。但是你可以没有初始化函数。
这里大致感觉和java差不多,所以就不多说明了。
5. python to exe
讲述如何将一个python源代码编译成一个exe。
1)下载安装py2exe 2.7版本的 http://download.csdn.net/detail/shiyuezhong/4588805
2)假设你写好了一个python程序 syz.py...存在了D:\Python27\下面
3)再写一个setup.py...也存在D:\Python27\下面...内容如下:
# setup.pyfrom distutils.core import setupimport py2exesetup(name="syz", scripts=["syz.py"],)
其中name和scripts是需要你到时候具体修改的,也可以这样setup(console=["syz.py"])
4)找到windows的dos模式(命令提示符)
D:\Python27>
D:\Python27>python setup.py py2exe
在你的D:\Python27就会出现两个文件夹build和dist,前面那个里面似乎是源程序,dist里面的就是编译好的.exe了。
6.图形界面
from Tkinter import * root = Tk(className='bitunion') label = Label(root) label['text'] = 'be on your own' label.pack()button = Button(root)button['text'] = 'change it'button.pack()root.mainloop()
root是一个变量名称,其代表了这个主窗口。以后创建控件的时候指定控件创建在什么窗口之中,就要用这个root来表示了。而Tk()是一个 Tkinter库之中的函数(其实是类的构造函数,构造了一个对象)。而mainloop则是主窗口的成员函数,也就是表示让这个root工作起来,开始 接收鼠标的和键盘的操作。
root= Tk(className='bitunion') //修改窗口标题,也可以使用默认 root = Tk()
pack是和控件的布局排版有关系的,去掉就显示不出来了。
通过函数来进行事件处理:
from Tkinter import *def on_click(): label['text'] = 'no way out'root = Tk(className='bitunion')label = Label(root)label['text'] = 'be on your own'label.pack()button = Button(root)button['text'] = 'change it'button['command'] = on_clickbutton.pack()root.mainloop()
on_click中出现label这个变量比较奇怪,因为在on_click前面没有定义label这个变量,但是python在你写的时候根本就不用知道其是否存在,只是要在运行的时候找得到label就可以了。而运行的前后关系,是通过时间来关联的而不是代码上前 后行的关系。这里由于label = Label(root)先于on_click执行,所以当on_click执行的时候,label就是一个已经定义的变量。
- python简单的使用(二)
- Python爬虫实践(二):Urllib库的简单使用
- python中使用文件的读取编码问题和简单正则使用(二)
- Python--简单的端口扫描器(二)
- python多线程的简单使用
- Python Numpy的简单使用
- Python datetime的简单使用
- Python selenium的简单使用
- python列表的简单使用
- Python-socket的简单使用
- python unittest的简单使用
- python pandas 的简单使用
- 使用python实现的简单二分类器—感知器
- Rhino学习笔记(二)---简单的使用
- Androd Toolbar 的简单使用二
- 连载二--AFNetworking的简单使用
- EventBus 《二》 Android EventBus的简单使用
- VideoView的简单使用(二)
- Analyzing Twitter Data with Hadoop
- 海量数据存储
- Spring+IBatis整合各层设计(I)
- 排序算法总结
- Vsftpd 软件包的安装
- python简单的使用(二)
- hdu 2227 Find the nondecreasing subsequences(树状数组)
- 常用控件的缩写记录
- win7中phpmyadmin的配置
- 5个Servlet过滤器实例源码(JSP)
- 位运算符
- hdu 4405 Aeroplane chess(很水的期望DP)
- string,char,char*,char a[] 占字节数, 以及sizeof,strlen(),str.length()的用法
- Android初步学代码收集