循环结构及函数基础

循环结构(for-in)

  • 说明:也是循环结构的一种,经常用于遍历字符串、列表,元组,字典等

  • 格式:

    for x in y:
    循环体

    执行流程:x依次表示y中的一个元素,遍历完所有元素循环结束

  • 示例1:遍历字符串

    s = 'I love you more than i can say'
    for i in s:
    print(i)
  • 示例2:遍历列表

    l = ['鹅鹅鹅', '曲项向天歌', '锄禾日当午', '春种一粒粟']
    
    for i in l:
    print(i) # 可以获取下表,enumerate每次循环可以得到下表及元素
    for i, v in enumerate(l):
    print(i, v)
  • 示例3:遍历字典

    d = {'a':'apple', 'b':'banana', 'c':'car', 'd': 'desk'}
    
    for key in d:
    # 遍历字典时遍历的是键
    print(key, d.get(key)) # for key, value in d.items():
    # 上下两种方式等价 d.items() <=> dict.items(d)
    for key, value in dict.items(d):
    print(key, value)
  • 列表生成式

    • 可迭代对象:列表、元组、字典等都是可迭代对象,就是可以遍历的对象
    • range,用法如下:
    print(range(10))
    # 可以生成从0开始到10的连续整数的迭代对象
    print(range(0, 10)) # 可以遍历
    for i in range(10):
    print(i) # 强制转换为列表
    print(list(range(1, 11)))
    • 列表生成式:快速生成具有特定规律的列表
    # 列表生成式
    print([i for i in range(1, 11)])
    print([i*2 for i in range(1, 11)])
    print([i*i for i in range(1, 11)])
    print([str(i) for i in range(1, 11)])
    print([i for i in range(1, 11) if i % 2 == 0])
  • 多重循环:就是循环中嵌套循环

    • 示例1:从终端输入一个整数,打印如下图形:
    n = int(input('请输入一个整数:'))
    
    '''
    1
    1 2
    1 2 3
    1 2 3 4
    ...
    1 2 3 4 ... n
    ''' '''
    j = 1
    while j <= n:
    i = 1
    while i <= j:
    print(i, end=' ')
    i += 1
    print()
    j += 1
    ''' for i in range(1, n+1):
    for j in range(1, i+1):
    print(j, end=' ')
    print()
    • 示例2:打印九九乘法表
    for i in range(1, 10):
    for j in range(1, i+1):
    print('{}x{}={}'.format(j, i, j*i), end=' ')
    print()
    • 示例3:列表排序(选择法)
    l = [1, 9, 4, 2, 0, 8, 3, 7]
    
    # 获取长度
    n = len(l) # 外层循环用来控制循环的圈数,每一圈可以确定一个元素的位置
    # 确定n个元素起始只需要n-1圈即可
    for i in range(n-1):
    # 内层循环用来比较大小交换元素,一圈确定一个元素
    for j in range(i+1, n):
    # 如果不合适
    if l[i] > l[j]:
    # 交换两个变量
    l[i], l[j] = l[j], l[i] print(l)

函数

  • 定义:具有特定功能的一段代码

  • 优点:

    • 解决代码的重复书写问题
    • 可以将功能的实现者和使用者分开,提高开发效率
    • 增加的代码的可移植性
  • 分类:

    • 库函数:print、input、abs等
    • 自定义:用户自己封装的函数
  • 格式:

    def 函数名([参数列表]):
    函数体

    []表示可选,参数可以没有,也可以有多个。

  • 函数名:

    • 遵循标识符的命名规范(与变量命名相同)
  • 函数调用:

    • 函数定以后不会执行,需要调用才执行
    • 调用:函数名([参数])
  • 示例:

    # 无参无返回值
    def print_hello():
    print('Hello') # print_hello() # 带参无返回值
    def print_n_hello(n):
    for i in range(n):
    print('Hello') # print_n_hello(5) # 带参有返回值
    def add(a, b):
    c = a + b
    # 返回结果
    return c
    print(add(3, 5))
  • 函数参数

    • 形参:形式参数,函数定义处的参数
    • 实参:实际参数,函数调用处的参数
    • 必传参数:也叫位置参数,前面定义的函数中使用的都是必传参数,调用时的形式必须要与定义的一致。
    • 默认参数:就是有默认值的参数,必须放在最后
    • 可变长度参数:函数调用时传递必定义时的参数要多,多出来的参数会保存在args和kwargs中
    def show(a, b='默认值'):
    # a就是必传参数
    print(a)
    # b就是默认参数,就是有默认值的参数,必须放在最后
    print(b) # show(1, 2)
    # 关键字参数,传递参数的时候指定了名字,顺序就无所谓了
    # show(b=456, a=123) def var_len_args(a, b, name='默认名称', *args, **kwargs):
    print(a)
    print(b)
    print(name)
    # args是一个元组,用来存放所有的多出来的位置参数
    print(args)
    # kwargs是一个字典,用来存放所有的多出来的默认参数
    print(kwargs) var_len_args(1, 2, 3, 4, age=18)
  • *的特殊用法
def show(a, b):
print(a, b) l = [1, 2]
# 略显啰嗦
# show(l[0], l[1])
# 精简方法
show(*l) def show2(a='aa', b='bb'):
print(a, b) d = {'a':'apple', 'b':'banana'} # show2(a=d['a'], b=d['b'])
# 上面方式的简单书写方法
show2(**d)

python基础03-循环结构及函数基础的更多相关文章

  1. python基础之循环结构以及列表

    python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...

  2. 第五篇:python基础之循环结构以及列表

    python基础之循环结构以及列表   python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.pyth ...

  3. 基础语法-循环结构for

    基础语法-循环结构for 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.for循环格式 for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句(循环体); } ...

  4. 基础语法-循环结构do...while

    基础语法-循环结构do...while 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.do...while语句格式 do{ 执行语句; }while(条件表达式); 温馨提示: ...

  5. 基础语法-循环结构while

    基础语法-循环结构while 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.while语句格式 while(条件表达式){ 执行语句; } 二.while语句案例 /** * ...

  6. python分支和循环结构

    本文收录在Python从入门到精通系列文章系列 1. 分支结构 1.1 应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构.然而仅有顺序结构并不能解决 ...

  7. Python编程基础:循环结构

    一.为什么要用循环 现在有一个任务,要求你输出一百遍"好好学习,天天向上!",想一想,你会怎么做? (一)老老实实的笨方法 print("第1遍写:好好学习,天天向上!& ...

  8. Python新手学习基础之循环结构——For语句

    for语句 在Python里,循环语句除了while语句,还有for语句. 通常我们用for循环来遍历(按约定的顺序,对每个点进行访问,且只做一次访问)有序列的内容,比如列表和字符串(列表内容我们会在 ...

  9. Python语法速查: 7. 函数基础

    返回目录 (1)函数基本 ● 函数是第一类对象 Python中万物皆对象,所有对象都是第一类的(first class),函数也不例外,也是第一类对象.既然是对象,那就可以当作普通的对象数据处理,比如 ...

随机推荐

  1. saltstack系列(五)——zmq扩展(一)

    问题 假设我们的一个客户端既有pull又有sub,他们两个都需要接收消息,该如何协调呢,毕竟,当一个socket要收消息的时候,函数recv是阻塞的,所以,我们第一个思路是不让它阻塞? 实例代码: # ...

  2. 游戏引擎架构Note1

    [游戏引擎架构] 1.第14章介绍的对游戏性相关系统的设计非常有价值.各个开发人员几乎都是凭经验设计,很少见有书籍对这些做总结. 5.通过此书以知悉一些知名游戏作品实际上所采用的方案. 6.书名中的架 ...

  3. Django--初始化

    1.Django介绍 它是一个WEB框架 Django--大而全 tornado.flask--小而精 2.Django安装 https://www.djangoproject.com/downloa ...

  4. pip指定安装包版本

    pip是目前最好用的python包关系工具,没有之一. 1.版本范围符号:==.>=.<=.>.<. 2.单个安装示例: 1 2 3 pip install cchardet  ...

  5. Yii2中ACF和RBAC

    ACF ( Access Control Filter) ACF ( Access Control Filter)官网的解释就是一个可以在模型或控制器执行行为过滤器,当有用户请求时,ACF将检查acc ...

  6. 第06章-渲染Web视图

    1. 理解视图解析 将控制器中请求处理的逻辑和视图中的渲染实现解耦是Spring MVC的一个重要特性.如果控制器中的方法直接负责产生HTML的话,就很难在不影响请求处理逻辑的前提下,维护和更新视图. ...

  7. Java 线程的通讯--生产者和消费者

    package 生产者和消费者; //消费者 public class Customer implements Runnable { private Share_resources rescource ...

  8. HTML5游戏开发进阶指南 中文pdf扫描版​

    HTML5游戏开发进阶指南介绍了HTML5游戏开发的一般过程和技巧.全书共分12章,第1章介绍了本书相关的HTML5的诸多新特性,包括在canvas上绘图.播放声音等,另外还引入了子画面页的概念:第2 ...

  9. Spring容器管理对象和new对象

    问题:一个业务类交给spring管理,并自动注入了其他业务类作为属性,方法中通过全局属性调用其他业务类的方法.当该业务类是通过new获取的情况下,该实例的属性会是null(不存在依赖注入实例),调用方 ...

  10. MVC进阶篇(三)——model层数据验证

    前言 常常在想,姓名性别那些个验证,真的有必要每次遇到,每次写验证吗?好麻烦,于是学到MVC这里,发现MVC自带数据验证,这个东西着实是个好东西.我写了一个小demo,分享给大家. 内容 一个表单的提 ...