Python 数据分析——Python基础(四)

通过之前的学习,我们已经接触到了一些语句,Python 忠实地按照语句的顺序执行它们。如果你想要改变语句流的执行顺序,必须通过控制流语句实现。在 Python 中有三种控制流语句 —— if、for 和 while 。这节重点阐述流程控制语句,外送自定义函数。

if 语句

if 语句用来检验一个条件,如果条件为真,则运行一块语句(称为 if-块),否则处理另外一块语句(称为 else-块)。else 子句是可选的。

(1)单条件
'''
if 判断条件:
    执行语句……
else:
    执行语句……
这里用到了第一章说到的缩进的概念
'''
# if语句后面必须有 : 
# :后面的语句自动缩进
# if语句写完后,要退回原有缩进继续写
# Python代码的缩进规则:具有相同缩进的代码被视为代码块
type = 'animal'
if type == 'animal':
    print('这是一个动物')
    print('if-块结束') #这两个print语句是同一代码块
print('Finished!')

| 输出:这是一个动物
    if-块结束
    Finished!

(2)两个条件分支
flag = False
name = 'Java'
if name == 'python':          # 判断变量否为'python'
    flag = True               # 条件成立时设置标志为真
    print( 'welcome man')     # 并输出欢迎信息
else:
    print(name)               # 条件不成立时输出变量名称

| 输出:Java

(3)多条件分支
type = 3    
if type == 1:            # 判断 type 的值
    print('boss')       
elif type == 2:
    print('leader')
elif type == 3:
    print('manager')
elif type <= 0:           # 值小于等于零时输出
    print('error')
else:
    print('employee')    # 条件均不成立时输出

| 输出:manager

(4)单语句多个判断
# 判断值是否在0~10之间
# 输出结果: right
num = 5
if num >= 0 and num <= 10:    
    print( 'right')

# 判断值是否在小于0或大于10
# 输出结果: error
num = 6
if num < 0 or num > 10:    
    print( 'right')
else:
    print( 'error')

# 判断值是否在0~10或者20~35之间
# 输出结果: error
num = 8
if (num >= 0 and num <= 10) or (num >= 20 and num <= 35):    
    print( 'right')
else:
    print( 'error')

| 输出:right
error
right

注:在 Python 中没有 switch 语句。你可以使用 if…elif…else 语句来完成同样的工作(在某些场合,使用字典会更加快捷。)

循环语句
(1)for 循环语句
#I love you!循环输出3次
for i in range(3):
    print('I love you !')

| 输出:I love you !
I love you !
I love you !

#嵌套循环
for i in range(2):
    for j in range(2):
        print(i,j)

| 输出:0 0
0 1
1 0
1 1

# 通过 for 循环来遍历序列、映射
# 遍历list
lst = list(range(6))
for i in lst[::2]:
    print(i)
# 遍历字典
money = {'Kyle':'40W', 'Tommy':'10W', 'avlis':'45W', 'Lucy':'8W'}
for name in money:
    print(name , '工资为:%s' % money[name])

| 输出:0
2
4
Kyle 工资为:40W
Tommy 工资为:10W
avlis 工资为:45W
Lucy 工资为:8W

(2)while循环语句
count = 0
while count < 3:
    print(count, " 比3小")
    count = count + 1
else:
    print(count, " 不比3小")
print( "再见!")

|输出:0 比 3 小
1 比 3 小
2 比 3 小
3 不比 3 小
再见!

注意:避免如下的无限循环程序

count = 1
while count == 1 :  
    value = input("Enter a number  :")
    print( "You entered: ", value)
print( "Good bye!")
(3) 循环控制语句:break,continue,pass

break: 在语句块执行过程中终止循环,并且跳出整个循环
continue:在语句块执行过程中跳出该次循环,执行下一次循环
pass: pass是空语句,是为了保持程序结构的完整性

# break语句用来终止循环语句,即便循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
s = 0
num = 1
while num > 0:
    s += num
    num += 1
    if num == 10:
        break
print(s)

s = 0
for i in range(10):
    for j in range(5):
        if j > 2:
            break;              #跳出内层的循环,打印s的值以后,继续外层循环,外层循环再调用内层循环
        s = s + (i*j)
        print('第%i-%i次计算' %(i,j))
    print('此时i=%i,sum=%i' % (i,s))
    if s > 8:
        break                   #s大于8时,跳出外层循环,打印结果,结束
print('结果为%i' % s)

| 输出:
45
第 0-0 次计算
第 0-1 次计算
第 0-2 次计算
此时 i=0, sum=0
第 1-0 次计算
第 1-1 次计算
第 1-2 次计算
此时i=1, sum=3
第 2-0 次计算
第 2-1 次计算
第 2-2 次计算
此时 i=2, sum=9
结果为 9

# continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
lst = []
for i in range(10):
    if i%2 == 0:                   #为奇数时,跳过,不添加在列表中
        lst.append(i)
    else:
        continue
    print('第%i次添加'%(i/2 + 1))
print('结果为:', lst)

| 输出:
第 1 次添加
第 2 次添加
第 3 次添加
第 4 次添加
第 5 次添加
结果为: [0, 2, 4, 6, 8]

# pass是空语句,在特定环境下保持程序结构的完整性,用得少。
for r in 'Python':
    if r == 'h':
        pass
        print( '当前字母 :h,但是我pass了')
    print( '当前字母 :', r)
print( "Good bye!")

| 输出:
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h,但是我pass了
当前字母 : h
当前字母 : o
当前字母 : n
Good bye!

函数

Python 中通过 def 语句来自定义函数

(1)基本定义
def fun1(x,y):
    if x > 0:
        print('输入值的和为%i' % (x+y))
    else:
        print('输入有误')
fun1(10,2)

| 输出:输入值的和为 12

(2)return语句
def f1(x):
    y = 2*x          # 没有return

def f2(x):
    y = 2*x
    return y         # 含有return
print(f1(2),f2(2))   # return语句退出函数,并返回一个表达式。不带参数值的return语句返回None

| 输出:None  4

(3)默认参数 和 可变参数
# n = 2,这里n的默认值为2,如果不输入则以默认值为主
def f(x,n = 3):
    return(x**n)
print(f(10))
print(f(10,2))

# 通过*来定义可变参数
def f(*x):
    print(x)
    return x
f(10)
f('m','n')
f(1,2,3,[6,78])
# 默认会把可变参数传入一个元祖!
print(type(f('a','b')))

| 输出:
1000
100
(10,)
(‘m’, ‘n’)
(1, 2, 3, [6, 78])
(‘a’, ‘b’)

(4)函数中的全局变量和局部变量
def f(s):
    s = '局部变量赋值' # 函数作用:把输入变量指向“局部变量赋值”
    print("函数内为局部变量:%s" % s)    
a = 10
f(a)
print("执行函数后全局变量不变:%s" % a)

def f2():
    global b
    b = '这是全局变量'  
    print("函数内转为全局变量:%s" % b)    

b = 10
print("全局变量值b初始值:%s" % b)
f2()
print("执行函数后b的值变了:%s" % b)

| 输出:
函数内为局部变量:局部变量赋值
执行函数后全局变量不变:10

全局变量值b初始值:10
函数内转为全局变量:这是全局变量
执行函数后b的值变了:这是全局变量

匿名函数Lambda

# def创建自定义函数,求和
def fun(x,y):
    return x+y
print(fun(2,3))
#等同于如下lambda函数,lambda只有一行
f = lambda a,b:a+b
print(f(2,3))

| 输出:5  5

更多精彩,扫码关注
Python随手记

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值