上一篇:Numbers、Strings、Lists 笔记<一>下一篇:数据结构-Python3.7<三>

  • 如果需要修改迭代中的数据,建议先赋值一个副本(e.g:序列,切片复制的副本作为迭代)
>>> words=['dbibiubiubi']
>>> for w in words[:]:
... words.append('haha')
... print(words)
...
['dbibiubiubi', 'haha']
  • 需要修改一系列数字,使用range函数很方便,该函数可以产生一个等差序列,正、负都可以
>>> for i in range(0,8,3):
... print(i)
...
0
3
6
>>> for i in range(0,-9,-3):
... print(i)
...
0
-3
-6
>>>
  • pass语句什么都不做,当语法上需要语句时可以使用,但它不做任何操作
>>> def myFunc(a):
... pass
...
>>>
  • 函数名可以被解释器识别为用户定义/内置函数的类型
  • 函数没有任何return,会返回一个None
>>> def myFunc():
... pass
...
>>> print(myFunc())
None
>>>
  • in关键字,测试序列是否包含某个特定的值
>>> 7 in [4.5,7]
True
>>> '5' in '34345'
True
>>>
  • 函数的参数默认值时在‘函数定义范围内’上进行评估的
>>> test=5
>>> def myFunc(a=test):
... print(a)
...
>>> test=7
>>> myFunc()
5
>>>
  • 当函数的参数默认值是可变对象例如列表,在不同时候调用函数,会出现共享参数值情况,此时,建议把缺省值默认为None
>>> def myFunc(value=[]):
... value.append(6)
... print(value)
...
>>> myFunc()
[6]
>>> myFunc()
[6, 6]
>>> myFunc()
[6, 6, 6]
>>>
>>> def myFunc(value=None):
... if value==None:
... value=[]
... value.append(6)
... print(value)
...
>>> myFunc()
[6]
>>> myFunc()
[6]
>>> myFunc()
[6]
>>>
  • 在可变参数*args之后出现的参数都是关键字参数
>>> def myFunc(*args,test=1):
... print('args:',args)
... print('test:',test)
...
>>> myFunc(3,4,54,'enen')
args: (3, 4, 54, 'enen')
test: 1
>>> myFunc(3,4,54,test='enen')
args: (3, 4, 54)
test: enen
  • 列表参数可以使用*,字典参数可以使用**
>>> def myFunc(*args,**dicts):
... print('args:',args)
... print('dicts',dicts)
...
>>> a=[3,4,5,56]
>>> b={'A':'b','B':'b'}
>>> myFunc(*a,**b)
args: (3, 4, 5, 56)
dicts {'A': 'b', 'B': 'b'}
>>>
  • Lambda表达式可以作为函数的语法糖(e.g:作为函数的嵌套函数返回值、作为参数)
>>> def make_incrementor(n):
... return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43
>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
  • 函数注释查看(e.g:查看文档注释,查看参数期待类型)
>>> def myFunc():
... """hahahhahah
... hehehehehehe
... """
... pass
...
>>> print(myFunc.__doc__)
hahahhahah
hehehehehehe >>>
>>> def f(ham: str, eggs: str = 'eggs',apple:int=9):
... pass
...
>>> print(f.__annotations__)
{'ham': <class 'str'>, 'eggs': <class 'str'>, 'apple': <class 'int'>}
>>>

阅读网址:Python3.7教程

流程控制<二>的更多相关文章

  1. Java中的流程控制(二)

    关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch( ...

  2. Swift学习——格式控制符和元组流程控制(二)

    Swift中的格式控制符和元祖 (1)首先介绍一下元祖,元祖是关系型数据库中  比如学生表中的姓名,年龄,电话等 定义例如以下 var studentinfo = ("jhon", ...

  3. SpringMVC(二)——流程控制

    SpringMVC主要就是用来做流程控制的,这篇博客总结一下如何在流程控制添加Interceptor(拦截器),如何将进行流程Mapping映射解析,如何编写Controller(控制器). 一,首先 ...

  4. JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

    JAVA之旅(二)--if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学-- ...

  5. C#基础课程之二变量常量及流程控制

    课堂练习:.一个四位整数 输出它的千位,百位,十位,个位 数字. ; ; % ; % ; ; Console.WriteLine("千位数" + b+" 百位数" ...

  6. Go语言入门(二)Go语言中的变量、常量、数据类型、流程控制以及函数

    Go语言中的变量 通常用var关键声明变量,有常规方式和简化方式. 常规方式: var name1 type1 name1 = value1 //赋值 简化方式: var name2 = value1 ...

  7. JavaScript (二) js的基本语法 - - 运算符、流程控制

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.运算符 1.一元运算符 ++ -- 都是运算符 ++ 和 -- 可以分为:前+ 和后+ and 前- ...

  8. java 基本语法(五) 流程控制(二) 循环结构

    1.循环结构的四要素① 初始化条件② 循环条件 --->是boolean类型③ 循环体④ 迭代条件说明:通常情况下,循环结束都是因为②中循环条件返回false了. 2.三种循环结构:2.1 fo ...

  9. flutter--Dart基础语法(二)流程控制、函数、异常

    一.前言 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,Flutter 开源.免费,拥有宽松的开源协议,支持移动.Web.桌面和嵌入式平台. ...

随机推荐

  1. MUI 里js动态添加数字输入框后,增加、减少按钮无效

    numbox 的自动初化是在 mui.ready 时完成的mui 页面默认会自动初始化页面中的所有数字输入框,动态构造的 DOM 需要进行手动初始化.比如:您动态创建了一个 ID 为 abc 的数字输 ...

  2. bgfx入门练习2——找出DX,OpenGL驱动切换实现原理

    找到驱动切换的代码,自然而然就要找实现的位置了,简单搜了下,原来是GLSL Shader字节码转换到HLSL字节码,正好和Klayge做了相反的工作. 时间上似乎也差不多,Klyage是2014年搞的 ...

  3. python基本数据类型之字符串(四)

    python基本数据类型之字符串(四) 判断方法 python中有一类用来判断字符串形式的方法,该类方法有两个特点:(1)方法名都是is开头(除了startswith和endswith):(2)返回值 ...

  4. UVa 1426 Discrete Square Roots (扩展欧几里德)

    题意:给定 x,n,r,满足 r2 ≡ x mod(n) ,求在 0 ~ n 内满足 rr2 ≡ x mod(n) 的所有的 rr. 析:很明显直接是肯定不行了,复杂度太高了. r2 ≡ x mod( ...

  5. php,单引号与双引号的区别

    代码示例 <?php $s='666'; $s2="999"; $test = 'name{$s} - {$s2}'; $test2 = "name{$s} - { ...

  6. 字符串相似度算法——Levenshtein Distance算法

    Levenshtein Distance 算法,又叫 Edit Distance 算法,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一 ...

  7. st-link调试和下载程序(待写)

    st-link调试只用三根线 GND SWCLK SWDIO

  8. opencv源码编写规则

    OPENCV作为一种开源的计算机视觉库,我们有必要去了解这个库的一些编码格式及文件结构. 1.文档命名规则 必须将所有功能放入一个或多个.cpp和.hpp文件到OpenCV的相应模块中,或者如果贡献的 ...

  9. centos docker安装和使用

    系统要求:centos7,内核3.10或更高一.配置yum源并安装 vim /etc/yum.repos.d/docker.repos [dockerrepo] name=Docker Resposi ...

  10. Android Fragment用法知识点的讲解

    Android Fragment用法的讲解 碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示.Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了 ...