python学习之路2--控制语句与函数

1.选择结构

if语句用法:

if 条件1:

    代码块1     #注意缩进

elif 条件2:

    代码块2

elif 条件3:

    代码块3

...

...

elif 条件n-1:

    代码块n-1

else

    代码块n

2.循环结构

1.While循环

while 条件:

    代码块

2.For循环

for 循环变量 in 可迭代对象:

    代码段

如:

for i in range(star, end, step):

    代码段

#循环变量i从star开始,每次循环后i增加step,直至超过end跳出循环。

eg:

#计算50-100的和

sum = 0

for i in range(50, 101, 1):    #1可以省略

    sum += i

print(sum)

3.break, continue, pass

  • break 语句用于跳出 for 和 while 循环过程,跳出后对应的 else 部分将不执行
  • continue 语句用于跳过 for 和 while 循环中的本次循环,其后的语句在本次循环中将不再执行,同时程序将执行下一轮循环
  • pass语句主要用于占位,不会有任何效果

3.函数的定义与使用

1.定义

def ask_me_to(string):          

    print(f'You want to {string}? ')

    if string == 'swim':

       return 'OK!'

    else:

        return "Don't even think about it. "

  • def : 函数定义关键字
  • ask_me_to :函数名
  • string :参数,用逗号分隔
  • 结尾冒号不能掉

2.调用

print(ask_me_to('dive'))    # 两个函数嵌套,先调用ask_me_to,返回值传给print,再输出

3.函数的参数

参数的形式:

  • 不带默认参数的:def func(a):
  • 带默认参数的:def func(a, b=1):
  • 任意位置参数:def func(a, b=1, *c):
  • 任意键值参数:def func(a, b=1, *c, **d):

注:四种参数可以同时使用,定义时应满足非默认参数,默认参数,任意位置参数,任意键值参数
       调用时分为位置相关参数(前三个)按顺序传入,关键词参数(第四个)可以乱序传入。

4.修改传入的参数

字符串,数值类型和Tuple是一个不可变的对象,对于这些不可变类型,每次修改都会创建一个新的对象,然后修改引用为新的对象。

如:

num = 1

def edit_num(number):

    number += 2    

edit_num(num)    #引用时,为num += 1创建了新的对象

print(num)       #输出为旧的num--即1

可以改为:

num = 1

def edit_num(number):

    number += 2

    return number

num = edit_num(num)

print(num)

5.函数的返回值

  • 返回一个值----return 值或表达式
  • 什么都不返回----return 或return None
  • 返回多个值----return 值或表达式1, 值或表达式2, ...

6.函数的嵌套

1.作用域

  • 局部作用域:在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。
  • 全局作用域:在 Python 代码主体中创建的变量是全局变量,属于全局作用域,全局变量在任何范围(全局和局部)中可用。

2.Global 关键字

如果您需要创建一个全局变量,但被卡在本地作用域内,则可以使用 global 关键字。

global 关键字使变量成为全局变量。

3.nonlocal关键字

nonlocal 关键字用于在嵌套函数内部使用变量,其中变量不应属于内部函数。

请使用关键字 nonlocal 声明变量不是本地变量。

eg:

d = 1

def func4():  

    global d       # 访问到了全局变量d

    e = 5

    d += 2

    def inner():

        nonlocal e   # 访问到了闭包中的变量e

        e += 3

    inner()

    print(e)

func4()

print(d)

关于以上专业名词我也不太懂,参考以下链接可能得到解决

Python内部函数:它们有什么好处?– 真正的Python (realpython.com)

7.使用“轮子”

1.随机库

import random

print(random.randint(1, 5))     # 随机生成1-5以内的整数

import 的基本用法是:import 包名,包名提供的函数的用法是包名 . 函数名。

当然包里面的常量和类都可以用类似的方法调用

以上代码还有一种特殊的写法:

import random as rnd

print(rnd.randint(1,5))      # 同上,只是给了random一个方便输入的别名

2.日期库

import datetime

print(datetime.datetime.now())

3.数学库

import math

print(math.sin(math.pi / 2))

print(math.cos(math.pi / 2))

输出:

1.0

6.123233995736766e-17      # 其实就是0,由于浮点数的精度问题无法精准表示为0

注:在编写代码涉及浮点数比较的时候一定要这么写

EPS = 1e-8

print(abs(math.cos(math.pi / 2)) < EPS)

# EPS指的是允许误差范围。也就是浮点数没有真正的相等,也就是在一定误差范围内相等

4.操作系统库

import os

print(os.listdir('.'))

5.第三方库

可以用pip安装各种第三方库,安装好了就可以在代码中正常import 第三方库了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值