Python 学习 --- 基础知识
第一章
1、python于1989年底由范.罗萨姆始创。是一种面向对象的解释型语言。
第二章 python起步
1、输出语句print.
print和%结合使用,实现字符串的替换,与C语言中的prtinf()函数类似.print默认输出换行
>>> print ‘%s is a num: %d’ % (‘Python’, 45)
%s : 字符串; %d: 数字; %f: 浮点数.
2、输入语句raw_input().
>>> user = raw_input(‘Enter a number:’)
Enter a number:34
>>> user
‘34’
从标准输入流读取一个字符串自动删除串尾换行符,转换为字符串返回,将其赋值给user
(1)int():将数值字符串转换为整型
>>> num = raw_input(‘Enter a num:’)
Enter a num: 4
>>> print ‘Double num is: %d’ % (int(num)*2)
Double num is:8
3、下划线:_表示最后一个表达式的值.
>>> user = 34
>>> _
‘34’
4、注释
Python使用#标志注释.从#开始一直到一行结束内容都是注释.
5、运算符
算术运算符:+ - * / // % **
/:传统除法
>>> 4/3
1
>>>4.1/3
1.36666666666666665
整数相除,取比商小的最大整数;浮点数相除,取实际值.
//:浮点除法
>>> 4//3
1
>>> 4.1/3
1.0
整数/浮点数相除,对结果四舍五入.
**:乘方运算
>>> 2**2
4
>>> 2**3
8
>>> 2**4
16
注:乘方的优先级最高
比较运算符:< <= > >= == != <>
!= 和 <> 都表示不等于
>>> 3 < 4
True
>>> 3 > 4
False
逻辑运算符:and or not
>>> 3 < 4 and 4 < 5
True
>>> 3 < 4 < 5
True
>>> not 4 > 6
True
6、变量
Python变量的命名与其他编程语言相同,可以是字母/数字/下划线,但是变量名不能以数字开头.并且python无需预先声明变量的类型.
1、python支持增量赋值:
n = n * 10 <=> n *= 10
2、python不支持自增一和自减一
>>> n = 2
>>> ++n
2
>>> --n
2
7、数字
Python支持5种数字类型:
Int(有符号整数) long(长整数) bool(布尔值) float(浮点值) complex(复数)
其中,int ,long , bool 都是整数类型.bool值是一种特殊的整数,在一个数值的上下文中,True为1, False为0
>>> 1 + (3<4)
2
8、字符串
成对的单引号,双引号,三引号(三个连续的单引号或者双引号)之间的内容都是字符串.
索引运算符:[] ; 切片运算符:[ :] 用来得到子字符串.[a:b]表示获取从索引为a到b之间的字符串(包含a但不包含b指向的字符).如果不指定a,默认是从开始字符到b;如果不指定b,默认是从a到字符串结尾
+:用于字符串连接; *:用于字符串重复.
字符串索引规则:第一个字符索引为0, 最后一个为-1
>>> user = 'Hello World'
>>> user[0]
'H'
>>> user[-1]
'd'
>>> user[0:-1]
'Hello Worl'
>>> user[2:6]
'llo '
>>> user + ' ' + user
'Hello World Hello World'
>>> user * 3
'Hello WorldHello WorldHello World'
9、列表和元组
列表和元组都可以当成普通的’数组’,能保存任意类型的python对象,索引从0开始,但是列表和元组可以存储不同类型的对象.
区别:
列表用[ ]包裹,元素的个数和元素的值可以更改.通过索引运算[],切片运算[:]可以得到子集.
元组用()包裹,元素的个数和值不能更改. 通过索引运算[],切片运算[:]可以得到子集.
>>> list = [1,2,3,4]
>>> list
[1, 2, 3, 4]
>>> list[3]
4
>>> list[1:3]
[2, 3]
>>> list[0] = 5
>>> list
[5, 2, 3, 4]
>>> tuple = (1,2,3,4)
>>> tuple
(1, 2, 3, 4)
>>> tuple[2]
3
>>> tuple[1:3]
(2, 3)
>>> tuple[0] = 5 #不能更改
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
10、字典
字典由键-值(key-value)对构成.数字或字符串常用作键.字典元素用{ }包裹.
>>> dict = {'Host': 'XYW'} # creat a dict
>>> dict['Port'] = 80 # add element to dict
>>> dict
{'Host': 'XYW', 'Port': 80}
>>> dict.keys()
['Host', 'Port']
>>> dict['Host']
'XYW'
>>> for key in dict:
... print key, dict[key]
...
Host XYW
Port 80
11、if语句
if expression: #表达式非0或者为布尔值True(不要忘记后边的冒号)
If_suite #代码块缩进
>>> user = 4
>>> if user < 5:
... print '%d < 5' % (user)
...
4 < 5
if expression:
If_suite
else:
else_suite
>>> if user < 5:
... print '%d < 5' % (user)
... else:
... print '%d > 5' % (user)
...
4 < 5
if expression1:
if_suite
elif expression2:
elif_suite
else:
else_suite
12、while循环
while expression:
while_suite
>>> user = 5
>>> while user > 0:
... print 'user = %d' % (user)
... user -= 1
...
user = 4
user = 3
user = 2
user = 1
13、for循环
Python中的for循环和传统的(计数器类型)for循环不太一样, 它可以接受迭代对象(例如序列或者迭代器)做参数,每次迭代其中一个元素.
>>> print 'I like to use the Internet for:'
I like to use the Internet for:
>>> for item in ['email', 'net-browsing', 'work']:
... print item,
...
email net-browsing work
注:print默认会给每一行添加一个换行符,所以在print语句最后加一个逗号,就会显示在一行.
(1)range()函数:
range([start,] stop[, step])
start:开始数值; stop:结束数值; step:每一步大小(可以为正数或负数).start或step可以省略.如果省略start,则默认是从0开始.如果省略step,则默认是每步加1,start和step可以同时省略,但是不能只省略start.
>>> range(4) #省略start和step
[0, 1, 2, 3]
>>> range(1,5) #省略step
[1, 2, 3, 4]
>>> range(0,-10,-1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
(2)for迭代每个字符:
>>> user = 'Chinese'
>>> for item in user:
... print item
...
C
h
i
n
e
s
e
(3)range函数和len函数结合使用可以实现普通计数器类型的for循环:
>>> user = 'Chinese'
>>> for i in range(len(user)):
... print user[i], '%d' % (i) #输出元素值及其索引值
...
C 0
h 1
i 2
n 3
e 4
s 5
e 6
(4)enumerate函数同时遍历索引以及元素
>>> user = 'Chinese'
>>> for index, value in enumerate(user):
... print '%d' % index, value
...
0 C
1 h
2 i
3 n
4 e
5 s
6 e
(5)列表解析:通过操作或者处理一个序列创建一个新的列表
[expr for iter_var in iterable]
[expr for iter_var in iterable if cond_expr]
第一种语法:首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表.
第二种语法:加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表.
>>> list = [x ** 2 for x in range(4)]
>>> list
[0, 1, 4, 9]
>>> list = [x ** 2 for x in range(8) if not x % 2]
>>> list
[0, 4, 16, 36]
14、文件
打开文件:handle = open(filename, access_mode = ‘r’)
以access_mode的方式打开文件filename.默认是只读的r.
>>> fileName = raw_input('Enter a file name: ')
Enter a file name: C:\\杂项\\test.txt
>>> File = open(fileName, 'r')
>>> for eachLine in File:
... print eachLine,
...
BUS:00, DEV:00, FUN:00 = 01548086
BUS:00, DEV:00, FUN:01 = FFFFFFFF
BUS:00, DEV:00, FUN:02 = FFFFFFFF
BUS:00, DEV:00, FUN:03 = FFFFFFFF
BUS:00, DEV:00, FUN:04 = FFFFFFFF
BUS:00, DEV:00, FUN:05 = FFFFFFFF
BUS:00, DEV:00, FUN:06 = FFFFFFFF
>>> File.close()
15、异常处理
使用try-except语句
try:
filename = raw_input('Enter file name: ')
fobj = open(filename, 'r')
for eachLine in fobj:
print eachLine, fobj.close()
except IOError, e:
print 'file open error:', e
16、函数
函数在调用前必须先定义,如果函数中没有return语句,默认返回None对象.Python是通过引用调用的参数,在函数内对参数进行改变会影响可变对象的值.
定义方式:
def function_name([arguments]):
“optional documentation string”
function_suite
E.g:
>>> def Add(x, y):
... 'add x and y'
... return (x + y)
...
>>> Add(2, 3)
5
>>> Add('I am a ', 'Boy')
'I am a Boy'
>>> Add([1,2,3], [4,5,6])
[1, 2, 3, 4, 5, 6]
>>>
注:几乎所有的标准数据类型都支持 + 运算符,不管是数值相加还是序列合并.
(1)默认参数
Python可以使用默认参数
#定义函数
>>> def foo(debug = True):
... if debug:
... print 'in debug mode'
... print 'done'
...
#调用函数
>>> foo()
in debug mode
done
>>> foo(False)
done
17、类
类定义:
class ClassName(base_class[es]):
"optional documentation string"
static_member_declarations
method_declarations
e.g:
>>> class HelloClass(object):
... 'my first class: HelloClass'
... version = 1.0 #类成员变量
... def _init_(self, nm = 'Eliot'):
... self.name = nm
... print 'Create a class instance for ', nm
... def showName(self):
... print 'Your name is ', self.name
... print 'My name is ', self._class_._name_
... def showVer(self):
... print 'My version is ', self.version
... def addMe(self, x):
... 'add myself'
... return x + x
...
调用:
hello = HelloClass()
hello.showName()
hello.showVer()
hello.addMe(4)
注:hello. showName()在Dos下调用时有错误,而且hello=HelloClass()没有按照要求输出,可能因为没有使用可视化平台有关.
#定义类时可以提供一个可选的父类或者基类,如果没有合适的基类,使用object.
#所有名字开始和结束都有两个下划线的方法都是特殊方法.当一个类的实例创建时_init_()方法会自动执行,但是系统的_init_()方法是空的,所以要创建自己的_init_()方法来覆盖系统的方法,它一般用来实例化对象的某些属性.self相当于其他语言中的this,指向类实例自身的引用或者调用它的类实例.
18、模块
模块将彼此有关系的 Python 代码组织到一个个独立文件当中.通过导入模块可以使用其中的变量和方法.
import module_name
19、实用的函数
dir([obj]) 显示对象的属性,如果没有提供参数,则显示全局变量的名字.
help([obj]) 以一种整齐美观的形式 显示对象的文档字符串,如果没有提供任何参数,则会进入交互式帮助.
int(obj) 将一个对象转换为整数.
len(obj) 返回对象的长度.
open(fn, mode) 以mode('r' = 读, 'w'= 写)方式打开一个文件名为 fn 的文件.
range([[start,]stop[,step]) 返回一个整数列表.起始值为 start, 结束值为 stop - 1; start默认值为0,step默认值为1.
raw_input(str) 等待用户输入一个字符串,可以提供一个可选的参数str用作提示信息.
str(obj) 将一个对象转换为字符串.
type(obj) 返回对象的类型(返回值本身一个type对象!)
练习:
2-4:
>>> raw_input('Enter a num:')
Enter a num:3
'3'
>>> user = raw_input('Enter a num:')
Enter a num:4
>>> int(user)
4
2-5:
(1)while:
>>> i = 0
>>> while i < 11:
... print i,
... i += 1
...
0 1 2 3 4 5 6 7 8 9 10
for:
>>> for i in [0,1,2,3,4,5,6,7,8,9,10]:
... print i,
...
0 1 2 3 4 5 6 7 8 9 10
(2)while:
>>> i = 0
>>> while i in range(11):
... print i,
... i += 1
...
0 1 2 3 4 5 6 7 8 9 10
for:
>>> for i in range(11):
... print i,
...
0 1 2 3 4 5 6 7 8 9 10
For函数定义:
for_stmt ::= "for" target_list "in" expression_list ":" suite
["else" ":" suite]
The for statement is used to iterate over the elements of a sequence (such as a string, tuple or list) or other iterable object:
The while statement is used for repeated execution as long as an expression is true:
while_stmt ::= "while" expression ":" suite
["else" ":" suite]
总结:while后接一个条件表达式,满足条件时才执行循环语句,且需要自己手动累加计数,如: i += 1,如果条件不满足,可以继续执行后面的else语句(可选).
for循环是循环迭代一个字符串或者list,直至字符串或者list遍历完,继续执行后面的else语句(可选).并且不需要手动累加计数.
2-7:
>>> str = raw_input('Enter a string:
Enter a string:Chinese
>>> i = 0
>>> while i < len(str):
... print str[i]
... i += 1
...
C
h
i
n
e
s
e
>>> for i in str:
... print i
...
C
h
i
n
e
s
e
>>> for i in range(len(str)):
... print str[i]
...
C
h
i
n
e
s
e
2-8:
While:
>>> list = [1,2,3,4,5]
>>> i = 0
>>> sum = 0
>>> while i < 5:
... sum += list[i]
... i += 1
...
>>> sum
15
>>> tuple = (1,2,3,4,5)
>>> i = 0
>>> sum = 0
>>> while i < 5:
... sum += tuple[i]
... i += 1
...
>>> sum
15
For:
>>> list = [1,2,3,4,5]
>>> i = 0
>>> sum = 0
>>> for i in list:
... sum += i
...
>>> sum
15
>>> tuple = (1,2,3,4,5)
>>> i = 0
>>> sum = 0
>>> for i in tuple:
... sum += i
...
>>> sum
15
用户输入list的前提是list已经有一定的数值,用户
>>> list = [1,2,3,4,5]
>>> i = 0
>>> sum = 0
>>> while i < 5:
... user = raw_input('Enter a number: ')
... list[i] = int(user)
... i += 1
...
Enter a number: 1
Enter a number: 2
Enter a number: 3
Enter a number: 4
Enter a number: 5
>>> list
[1, 2, 3, 4, 5]
2-9:
>>> list = [1,2,3,4,5,6]
>>> sum = 0
>>> for i in list:
... sum += i
...
>>> sum/(len(list))
3
>>> sum
21
>>> float(sum)/(len(list))
3.5
2-10:
>>> i = 0
>>> while (i < 1 or i > 100):
... i = int(raw_input('Enter a number between 0 and 100: '))
... if(i < 1 or i > 100):
... print 'The number is out of range,please reput it !'
...
Enter a number between 0 and 100: 110
The number is out of range,please reput it !
Enter a number between 0 and 100: 120
The number is out of range,please reput it !
Enter a number between 0 and 100: 11
注:raw_input返回的是一个字符串类型的,要转换为int型
2-11
#!/usr/bin/python
# -*- coding: utf-8 -*-
#author:xyw
#date:2012-11-22
#2-11
ch = 0
sum = 0
list = [1,2,3,4,5]
while(ch != 3):
print '1.求和 2.求均值 3.退出'
ch = int(raw_input())
if(ch == 1):
print '请输入5个数字:'
i = 0
sum = 0
while( i < 5):
list[i] = int(raw_input())
sum += list[i]
i += 1
print '和为:%d' % (sum)
elif(ch == 2):
print '请输入5个数字:'
i = 0
sum = 0
while(i < 5):
list[i] = int(raw_input())
sum += list[i]
i += 1
print '均值为:%f' % (float(sum)/5)
Python学习笔记-Python起步 ———————————本文来自:http://blog.csdn.net/xyw\_blog/article/details/8234613
还没有评论,来说两句吧...