python学习二(语句、列表解析、函数、文件操作、模块)

一、语句

1.if语句

标准的if语句语法如下:

if expression:
	do something1
	do something2
next_something

如果表达式的值为非0或者布尔值True,则执行do_something,否则执行下一条语句。

  • python支持if…else,还支持elif(else-if)
if expression:
	do_something1
else:
	do_something2

if expression1:
	do_something1
elif expression2:
	do_something2
else:
	do_something3
  • python并不支持switch/case这样的语句,也没有必要支持。实际上switch/case语法并不优雅。
  • 如果条件分支太多,就可以考虑使用“表驱动”的方式来组织代码。

2.while循环

  • while循环语句和if语句类似。只要表达式的值非0或者为True,就会执行do_something。
while expression:
	do_something

# 循环执行三次print
count=0
while count<3:
    print '%d' % count
    count+=1

python学习二(语句、列表解析、函数、文件操作、模块)_第1张图片

3.for循环

  • python的for循环和传统的for循环不一样,python中的for循环为for-in。
  • for循环可以接收可迭代对象(序列或者迭代器)作为参数,每次迭代其中的一个元素。
# arr可以是字符串、元组、列表和字典
for i in arr:
	do_something
arr=(1,2,3)
for i in arr:
    print i
str="haha"
for c in str:
    print c
dist={'ip':"127.0.0.1",'port':8080}
for key in dist:
    print key,dist[key]

python学习二(语句、列表解析、函数、文件操作、模块)_第2张图片

  • 内建函数range可以生成一个数字组成的列表,方便进行for循环遍历,range函数其实有三个参数。前两个参数分别表示前闭后开的区间,且这两个参数必须是整数。第三个参数表示step,即每次迭代的步长。
for i in range(1,5):
    print("%f" % i)
for item in range(1,5,2):
    print("loop %d" % item)

python学习二(语句、列表解析、函数、文件操作、模块)_第3张图片

4.break和continue语句

  • 使用break语句跳出当前循环。
  • 使用continue语句,结束此次循环,回到循环顶端,判定循环条件。如果条件满足,则继续下一次循环。
for i in range(1,5):
    if i%3==0:
        break
    print("i=%d" % i)

for i in range(1,5):
    if i%3==0:
        continue
    print("i=%d" % i)

python学习二(语句、列表解析、函数、文件操作、模块)_第4张图片

5.pass语句

其实就是空语句。有时候需要用到空语句这样的概念,什么都不做。由于没有{},就需要有一个专门的语句来占位,要不缩进就混乱了。

x=1
if x%2==0:   
else:
    print("x不能整除2")

python学习二(语句、列表解析、函数、文件操作、模块)_第5张图片

# coding:utf-8
x=1
if x%2==0:
    pass
else:
    print("x不能整除2")

python学习二(语句、列表解析、函数、文件操作、模块)_第6张图片

二、python的列表解析

  • 使用for循环将生成的值放在一个列表中
# 生成[0,4)的数字的平方序列
squares=[x ** 2 for x in range(4)]
print squares

# 搭配if语句使用
# 获取[0,8)区间内的所有奇数
events=[x for x in range(0,8) if x%2==1]
print events

python学习二(语句、列表解析、函数、文件操作、模块)_第7张图片

三、函数

  • 一些可以被重复使用的代码,可以提取出来放到函数中。
  • python使用def来定义一个函数,使用return来返回结果。
def add(x,y):
    return x+y

print(add(3,2))

函数中的x和y即为形参,相当于数学中“未知数”的概念。add(3,2)中的3和2是实参,就是给未知数确定具体的数值。

  • python没有“重载”的概念。相同名字的函数,后面的会覆盖前面的。
def func():
    print 'aaa'
def func():
    print 'bbb'

func()

执行结果:bbb

  • python支持默认参数,函数的参数可以具备默认值。
def func(debug=True):
    if debug:
        print('in debug mode')
    else:
        print 'done'

func()
func(False)

在这里插入图片描述

  • python解包(unpack)语法,函数返回多个值。
def GetPoint():
    return 100,200

x,y=GetPoint()
print x,y
# 只关注y,不想关注x,可以使用_作为占位符
_,y=GetPoint()
print y

在这里插入图片描述

  • 函数也是一个对象。一个函数和一个数字,字符串一样,都可以用“别名”来引用它。
  • 函数既然也是一个对象,那么也可以作为另外一个函数的参数和返回值。
def GetPoint():
    return 100,200

func_type=type(GetPoint)
print func_type

在这里插入图片描述

四、文件操作

使用内建函数open打开一个文件,其中file_name是文件的名字,也可以是绝对路径或者相对路径。access_mode是文件的打开方式,选项有以下几种:
‘r’:只读
‘w’:只写
‘a’:追加写
‘t’:按文本方式读写
‘b’:按二进制方式读写

handler=open(file_name,access_mode='r')
# 如:
handler=open('text.txt',access_mode='r')
或者
handler=open('/相对路径',access_mode='r')

其中,handler是一个文件句柄,是一个可迭代的对象,可以直接使用for循环按行读取文件内容:

for line in handler:
	print line # 打印每行的内容

handler使用完毕,需要close掉,否则会引起资源泄露(一个进程能打开的句柄数目是有限的)

handler.close()

例子:统计text.txt文件中每行每个单词出现的次数
python学习二(语句、列表解析、函数、文件操作、模块)_第8张图片

# coding:UTF-8
handler=open('text.txt','r')
handler=open('text.txt','r')
words={} # 定义words为字典类型,key为文件中每行的单词,value为单词出现的次数
for word in handler:
    word=word[:-1]  # 去掉末尾的\n
    print(word) # 打印每行的单词
    # print(type(word)) # 'str' word是字符串类型
    if word not in words: # 使用in关键字判定这个单词是否是字典的key
        words[word]=1
    else:
        words[word]+=1;
handler.close()
print words

python学习二(语句、列表解析、函数、文件操作、模块)_第9张图片

五、模块

当我们一个项目的代码量较大的时候,需要把代码放到多个不同的.py文件中:

  • 可以通过import关键字,引用其它.py文件中的代码
  • 被引入的这个代码文件,就称之为“模块”。
  • 被引入的文件,去掉.py后缀名后,即为模块名。
    python学习二(语句、列表解析、函数、文件操作、模块)_第10张图片
# coding:UTF-8
from t import add
from t import reduce
def reduce(x,y):
    return x-y;
test=add(2,3)
print test
print add(1,2)
print reduce(1,2) # 不论是否导入t.py中的reduce,调用的都是本文件下的reduce函数

python学习二(语句、列表解析、函数、文件操作、模块)_第11张图片
或者给模块名起一个别名

import t # 直接引入t模块,后面通过“模块名.函数名”调用
def reduce(x,y):
    return x-y;
test=t # 给模块名起一个别名
print test.add(1,2) # 3
print t.add(1,2) # 3
print test.reduce(1,2) # 2
print t.reduce(1,2) # 2

python学习二(语句、列表解析、函数、文件操作、模块)_第12张图片

import sys
print sys.path #打印出了模块查找的路径

你可能感兴趣的:(Python)