一.循环结构

python中提供了for循环和while循环两种操作,没有do……while语句。

1.for循环:

与其他语言中for循环的常见的写法如for (int i=0;i<10;i++)不同,python中的for循环更加类似于foreach结构:

##举例:遍历输出一个单词的所有字母
for letter in 'Python':
  print('当前字母 :'+letter)

对比:

string str = "Python";
foreach(char c in str)
{
Console.WriteLine("当前字母:"+c);
}

我们有时候会涉及到针对数组、列表或字典的索引或下标的操作或判断,在Python中提供了for i in range(开始索引,结束索引)的方式进行操作:

##举例:输出一个List的前3个字母
List = ["C#","Java","Python","C","C++"]
for i in range(0,2) ##注意索引下表是从0开始,这种写法等价于for(int i=0;i<=2;i++)
print(List[i])

在python3中,我们甚至可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):

如:for i in range(0, 10, 3) : print(i),这种写法等价于for(int i=0;i<=10;i=i+3)

2.while循环:

基本语法如下:

while 判断条件:
循环语句

当判断条件为永真条件时,while为无限循环,比较常见的是用来处理实时请求或其他循环操作:

while 1==1:
##循环语句

使用Crtl+C可以直接跳出循环

3.使用break与continue进行循环控制:

var = 10
while var > 0:
print ('当期变量值为 :', var)
var = var -1
if var == 5:
break ##break直接跳出整个循环 print ("Good bye!")
var = 10
while var > 0:
var = var -1
if var == 5: # continue为跳过本次循环的剩余代码,直接跳转进入下一次循环
continue
print ('当前变量值 :', var)
print ("Good bye!")

二.选择结构:

python中没有提供switch语句进行选择结构的操作,再让我哭会……

python中选择结构的常见语法是if ...... elif ...... else

i=1
if i==1 ##注意一哈,后面是用空格分隔而不是()
print("进入if分支")
elif i==2
print("进入elif分支")
else
print("else分支")

PS:在python中,0和null表示false,其余表示true。

三.函数:

1.函数的定义:Python中的函数定义语法如下:

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

函数以 def 关键词开头,后接函数名称和圆括号 (),()中为这个函数的参数;以冒号起始,并且缩进

由于python弱化了变量以及变量类型的概念,因此函数体可以加retrun,也可以不加;不加return则类似于C语言中的void类型函数。

2.函数的调用与参数的传递:我们回到这段代码:

## coding=utf-8
##冒泡排序与HelloWorld
def BubbleSort(list):##定义一个函数
for i in range(len(list)):
for j in range(i):
if list[j] > list[j+1]:
list[j],list[j+1] = list[j+1],list[j]
return list if __name__ == "__main__":
  list = [8,1,2,66,5,123]
print("hello world")
list = BubbleSort(list) ##调用函数BubbleSort并传入参数list
print(list)

在调用函数和传参时,需要注意以下的几个方面:

1.Python中提供了多个传参的方式:

必需参数:须以正确的顺序传入函数。调用时的数量必须和声明时的一样:

def sub(a,b):
return a-b if __name__ == __"main"__:
a=5,b=2
c=sub(a,b)
print(c) ##输出结果为3

关键字参数:传参时按照参数名=值的方式传参,允许函数调用时参数的顺序与声明时不一致,使用参数名进行匹配:

def sub(a,b):
return a-b if __name__ == __"main"__:
c=sub(b=2,a=5)##关键字参数,执行函数时会按照形参的参数名进行匹配,而非传入参数的顺序
print(c) ##输出结果为3

默认参数:函数的入参定义了默认参数后,调用函数时可以不传入参数,此时函数执行时取默认参数进行处理:

def sub(a=5,b=2) ##默认参数,当不传入参数时,a取5,b取2进行运算
return a-b if __name__ == __"main"__"
c=sub
print(c)##输出结果为3

不定长参数:当函数无法确定入参的实际个数时,可以采用不定长参数的方式进行传参,不定长参数定义时需要加*,用于存放所有未命名的参数,若没有指定就是一个空元组;不定长参数不一定要传入:

def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
for var in vartuple:
print (var)
return printinfo( 70, 60, 50 ) ##调用函数,传入不定长的参数

PS:1.由于默认参数和不定长参数的存在,Python形式上不支持函数的重载,此外,python中函数参数变量是没有类型的,当你调用传值的时候才知道它到底是什么类型的变量。故对参数类型不同的函数根本无需考虑重载。

2.如果一个函数具有多个参数,调用时想指定其中的几个,建议使用关键字参数进行传参,降低报错或异常的风险

Python学习笔记(Ⅱ)——循环/选择/函数的更多相关文章

  1. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  2. Python学习笔记010——匿名函数lambda

    1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要r ...

  3. python学习笔记4-内置函数、匿名函数、json处理

    print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真 print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真 print(bin(10))#十 ...

  4. python学习笔记——高阶函数map()

    满足以下两点中任意一点,即为高阶函数: 1.函数接收一个或多个函数作为参数 2.函数返回一个函数 1 描述 用函数和可迭代对象中每一个元素作为参数,计算出新的迭代对象 map() 会根据提供的函数对指 ...

  5. Python学习笔记总结(二)函数和模块

    一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句        例子 Calls        myfunc(‘diege', ...

  6. python 学习笔记6(函数)

    函数 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 1.减少代码重复 2.保持代码的一致性 3.方便修改,可扩展性 函数的创建 #简单 ...

  7. Python学习笔记4(函数与模块)

    1.Python程序的结构 Python的程序由包(package).模块(module)和函数组成. 模块是处理一类问题的集合,由函数和类组成. 包是由一系列模块组成的集合.包是一个完成特定任务的工 ...

  8. Python学习笔记:open函数和with临时运行环境(文件操作)

    open函数 1.open函数: file=open(filename, encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件 ...

  9. 吴裕雄--天生自然python学习笔记:Python3 函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这 ...

随机推荐

  1. python 用xlwt包把数据导出到excel表中

    def write_excel(): f = xlwt.Workbook() #创建工作簿 ''' 创建第一个sheet: sheet1 ''' sheet1 = f.add_sheet(u'shee ...

  2. if的{}的省略

    if (表达式) 语句; else if(表达式) 语句; else if(表达式) 语句; else 语句; 对应: if (表达式) { 语句1; 语句2; 语句N;//多个语句组成代码块 } e ...

  3. PSO:利用PSO实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度—Jason niu

    x = 1:0.01:2; y = sin(10*pi*x) ./ x; figure plot(x, y) title('绘制目标函数曲线图—Jason niu'); hold on c1 = 1. ...

  4. Aragorn's Story HDU - 3966 -树剖模板

    HDU - 3966 思路 :树链剖分就是可以把一个路径上的点映射成几段连续的区间上.这样对于连续的区间可以用线段树维护, 对于每一段连续的区间都可以通过top [ ]数组很快的找到这段连续区间的头. ...

  5. Windows API教程文件系统

    本篇文章主要介绍了"Windows API教程文件系统",主要涉及到Windows API教程文件系统方面的内容,对于Windows API教程文件系统感兴趣的同学可以参考一下. ...

  6. 微信公众号_订阅号_微信JS-SDK网页开发

    微信JS-SDK( 分享接口很常用 ) 是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包 借助微信高效使用相机.语音.选题.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.支付等 ...

  7. 100837D

    囤了一个星期..今天看了下vj上 sysuteam7 三年半之前的代码.. 深刻地认识到了自己智商不足的问题. 先求出来每个点对中心的偏移量.确实是乱序的,但是我们可以极角排序,这样一定是一个循环移位 ...

  8. poj1207 3n+1 problem

    The 3n + 1 problem Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 60496   Accepted: 19 ...

  9. JAVA新的一天

    在2019/03/22/今天里,荣幸成为这个班级的一员,认识了新的小伙伴们,上午由老师大体说了一下java的理念,下午安装了DW编辑器,以及讲解了HTML的基本构造,和标签的使用,即使以前学习过,这次 ...

  10. 字符串转xml,特殊字符的问题

    字符串转xml,如果字符串包含&,< 等特殊符号,转成xml 需要特殊处理,否则XML解析会出错. String uuid = UUID.randomUUID().toString(). ...