开始向python靠拢,没有什么其他的原因,想搞人工智能相关的东西,python处理大数据方面有较大的优势。开始开展自己的python学习计划。
一、起步训练
1.1 基础语法
1.1.1 中文编码
查看python版本.png退出点击Ctrl + D
python 2.x的时候还不是默认支持中文的,输出中文,显示如下:
python 2.x中文错误.png
这时候需要加上: # -- coding: UTF-8 -- 或者 #coding=utf-8
python 3.x默认是支持utf-8的,所以不需要加中文编码。
1.1.2 基础语法
- 标识符区分大小写
- 行和缩进区分代码块
- “#” 表示注释
- 逻辑运算符:or and not
- print后面加 ;表示换行,加 , 表示不换行。
- 控制台输入使用input,input会精确到类型;raw_input只能输入字符串,python3.x已经废弃了raw_input
1.2 File 操作
1.2.1 读文件
# !/usr/bin/python
def file_read(filePath):
fo = open(filePath, "r");
line = fo.readline();
while line:
print line,
line = fo.readline();
fo.close();
FILE="/Users/jeffli/Developer/python/test.txt";
file_read(FILE);
read: 一次读取整个文件,需要较大的内存。
readline: 每次读取一行。
readlines: 一次读取整个文件,以列表的形式存储。
1.2.2 写文件
def file_write(filePath):
fo = open(filePath, "w");
fo.write("One \nTwo\nThree\nFour\n");
fo.close();
FILE="/Users/jeffli/Developer/python/test2.txt";
file_write(FILE);
1.3 面向对象
1.3.1 代码实例
# !/usr/bin/python
class Car(object):
count = 1;
def __init__(self, name, brand, price):
self.name = name;
self.brand = brand;
self.price = price;
# self.count += 1;
print "Hello, I am a car.";
def displayContent(self):
print "Name =",self.name,",brand =",self.brand,",price = ",self.price;
class LittleCar(Car):
def __init__(self, name, brand, price):
super(LittleCar, self).__init__(name, brand, price)
self.name = name;
self.brand = brand;
self.price = price;
print "Hello, I am a Little Car.";
def displayContent(self):
super(LittleCar, self).displayContent();
instance = LittleCar("X5", "BMW", 23.5);
instance.displayContent();
如果Car没有继承object的话,会出现下面的错误:
TypeError: super() argument 1 must be type, not classobj
这是因为python的super只能用于新类,不能用于经典类,所谓经典类,就是不用继承任何类的类。例如object,但是实例中的Car类显然是一个新类,那么必须要继承一个类。
网友评论