Python入门(2)
一、 基础语法
1.Print
print 是 python 里很基本很常见的一个操作,它的操作对象是一个字符串。
直接在 print 后面加一段文字来输出的话,需要给文字加上双引号或者单引号。大家应该发现了,print 除了打印文字之外,还能输出各种数字、运算结果、比较结果等。
2.输入
前面我们介绍了输出,既然有输出就肯定有输入,我们得有向程序“输入”信息的办法,才能和程序对话,进行所谓的“人机交互”。
Python 有一个接收命令行下输入的方法:input()。
举例:
print "Who do you think I am?"
input()
print "Oh, yes!"
运行后可以看到只输出第一行就停住了,那是因为input 在等待你的输入。
3.变量
变量,望文生义,就是变化的量。python 里创建一个变量的方法很简单,给它起个名字,然后给它一个值。
举起几个栗子:
name = 'Crossin'
myVar = 123
price = 5.99
visible = True
注意:“=”的作用把右边的值赋予给左边变量。
4.数据类型及类型转换
l 4种基本数据类型
- 字符串
- 整数
- 小数 (浮点数)
- bool 类型
l 类型转换
- int(x) #把 x 转换成整数# int('123') == 123
- float(x) #把 x 转换成浮点数#float('3.3') == 3.3
- str(x) #把 x 转换成字符串#str(111) == '111‘
- bool(x) #把 x 转换成 bool 值#bool(0) == False
5.Random
random.randint(a, b)可以生成一个 a 到 b 间的随机整数,包括 a 和 b。a、b 都必须是整数,且必须 b≥a。
random.random()生成一个 0 到 1 之间的随机浮点数,包括 0 但不包括 1,也就是[0.0, 1.0)。
random.uniform(a, b)生成 a、b 之间的随机浮点数。不过与 randint 不同的是,a、b 无需是整数,也不用考虑大小。
random.choice(seq)从序列中随机选取一个元素。seq 需要是一个序列,比如 list、元组、字符串。
random.randrange(start, stop, step)生成一个从 start 到 stop(不包括 stop),间隔为 step 的一个随机数。start、stop、step 都要为整数,且 start<stop。 start 和 step 都可以不提供参数,默认是从 0 开始,间隔为 1。但如果需要指定 step,则必须指定 start。
random.sample(population, k)从 population 序列中,随机获取 k 个元素,生成一个新序列。sample 不改变原来序列。
random.shuffle(x)把序列 x 中的元素顺序打乱。shuffle 直接改变原有的序列
6.字符串
l 字符串:一组字符的序列
l 格式:'string‘ or“string”
(1. 单引号=双引号 2.英文状态输入)
l 带引号字符串:使用不同引号区分
‘You are a "BAD" man’
“You are a ‘BAD’ man”
l 三个引号( ‘’‘)或者(""")
''' #方便使用单引号、双引号
“What‘s your name?” I asked. #直接换行
"I'm Han Meimei."
l “\”的用法(转义字符)
- I. \‘ 为单引号
- II. \“ 为双引号
- \\ 为字符串中的\
- \n 为字符串中的换行
- V. tips: “\”还可以在代码中换了行
“this is the \ # 输出this is the same line
same line"
l 字符串格式化
1.%d 对字符串进行格式化
num = 18 #%d 会被%后面的值替换
print 'My age is %d' % num
2.%f 格式化的数值是小数
print ‘Price is %f ’ % 4.99
3.%.2f保留两位小数
print ‘Price is %.2f ’ % 4.99
%s 来替换一段字符串
print 'Today is %s.' % 'Friday'
7.与”list”的第一次约会
l List: 列表 >>处理一组有序项目的数据结构
>>元素类型可以不一致
print range(1,10) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
l 操作 list
1. 访问 list 中的元素
l = [365, 'everyday', 0.618, True]
print l[1] #计算机中的计数通常都是从 0 开始
2. 修改 list 中的元素 l[0] = 123
3. 向 list 中添加元素 l.append(1024)
4. 删除 list 中的元素 del l[0]
二、 流程控制
1.If
l If 如果是,xxx
l Else 否则,xxx
l Elif 否则---否则
a=3
if a==1:
print 'one'
elif a==2:
print 'two'
elif a==3:
print 'three'
else:
print 'too many‘ #three
2.While
while也是我们经常看到的,同 if 一样,while 也是一种控制流语句。
语法为:
while 条件:
循环执行的语句
举例:
a = 1 #先将a设为 1
while a != 0: #a不等于0就一直循环下面的语句
print "please input"
a = input()
print "over" #直到语句结束输出over
3.For
l for ... in ...
#输出1到10
for i in range(1, 11):#尾部有冒号
print i#前面有空格,一般3或4个
l for循环的本质:对一个序列中的元素进行递归
- 序列:一组有顺序的元素的集合
- 递归:函数包含了对其自身的调用
l 小结:for i in range(a, b)
l 从 a 循环至 b-1for i in range(a, b) ==从 a 循环至 b-1
4.break、continue
while 循环 在条件不满足时 结束 ,
for 循环 遍历完序列后 结束 。
如果在循环条件仍然满足或序列没有遍历完的时候 , 想要强行跳出循环 , 就需要用到 break
语句 。
while True:
a = raw_input()
if a == 'EOF':
break
*注意:无论是 continue 还是 break,其改变的仅仅是当前所处的最内层循环的运行,如果外
层还有循环,并不会因此略过或跳出。
三、 函数
- 1. 函数定义
函数就是一块语句,这块语句有个名字,你可以在需要时反复地使用这块语句。它有可能需要输入,有可能会返回输出。
2.无参数
def sayHello():#定义函数
print 'hello world!‘
sayHello()#调用函数
3.有参数
参数:在函数中相当于一个变量
def sayHello(someone):
print someone + ' says Hello!‘
sayHello(‘tom’)#传参数注意参数类型
四、 面向对象
- 定义:把数据和对数据的操作用一种叫做“对象”的东西包裹起来
- 2. 面向对象的方法
1. class Car:
2. speed = 0
3. def drive(self, distance):
4. time = distance / self.speed
5. print time
6.
7. car1 = Car()
8. car1.speed = 60.0
9. car1.drive(100.0)
10. car1.drive(200.0)
11.
12. car2 = Car()
13. car2.speed = 150.0
14. car2.drive(100.0)
15. car2.drive(200.0)
16.
3.总结
面向过程把数据和处理数据的计算全部放在一起,当功能复杂之后,就会显得很混乱,且容易产生很多重复的代码。
而面向对象,把一类数据和处理这类数据的方法封装在一个类中,让程序的结构更清晰,不同的功能之间相互独立。这样更有利于进行模块化的开发方式。
五、 正则表达式
- 正则表达式就是记录文本规则的代码。
- python 中的正则表达式库,所做的事情是利用正则表达式来搜索文本。要使用它,你必须会自己用正则表达式来描述文本规则。
- 元字符
⃰ \w - 匹配字母或数字或下划线或汉字(3.x 版本可以匹配汉字,但 2.x 版本不可以)
⃰ ^ - 匹配字符串的开始.。[^abcd]就是除 abcd 以外的任意字符。
⃰ $ - 匹配字符串的结束
⃰ \W - 匹配任意不是字母,数字,下划线,汉字的字符
⃰ “\d”匹配一个数字字符。等价于 [0-9]。
⃰ “\D”匹配一个非数字字符。等价于 [^0-9]