Python的控制流

使用分支时注意

变量命名规范:

用户名:user_name,按下划线而不是驼峰

条件控制

if else

循环控制

for while break continue

分支控制

没有switch
没有goto

Python的if控制

判断元素为空:

if not [] :
    print('该元素为空') 

判断输入用户输入变量是否正确:

account = 'admin' 
passwd = 'admin'
print('input:')
i_account = input()
print('input:')
i_passwd = input()
if (i_account == account) and (i_passwd == passwd):
    print('success')
else:
    print('error')    

程序规范问题:

不合法的变量定义:
    [pylint] C0103:Invalid constant name "account"  
    python没有常量机制,但是有默认规范:
        常量变量名要:全部大写!(包括串常量和输入值!)
缺失模块定义:
    [pylint] C0103:Invalid module name "Untitled-1"
    [pylint] C0111:Missing module docstring
        每个文件第一行需要进行此代码段的模块说明,使用块注释!
其他错误:
    pylint监测
    另外,python代码隔离用四个空格或Tab

使用snippet片段快捷的定义各种 python代码段,循环、类、函数等等

if condition:
    pass    #pass是空语句,占位语句,如果什么都不写,则会报错
else:
    pass            
这均作为结构体,有变量作用域的问题
嵌套控制
    多个if嵌套,封装:提取为函数,具体逻辑封装到函数中        
单程控制
    if elif else,同一级别完成多个判断(python没有开关控制switch!)        
替换switch:
    多个elif、使用dict字典
    参见python.doc.org//程序设计的F&Q

对于input():

动态型语言,输入类型不可控,且输入后并不报错
接收到的值为字符串,如果需要整形:则需要int()转换

if用法实例,判断输入:

ACCOUNT = 'admin'
PASSWD = 'admin'
ACCOUNT1 = input()
PASSWD2 = input()
if (ACCOUNT1 == ACCOUNT) and (PASSWD2 == PASSWD):
    print('success')
else:
    print('error')   

Python的循环控制

while循环:

直到型循环,直到目标之后才结束循环
适合于递归

示例:

CONDITION = True
while CONDITION:
    CONDITION = bool(input())
    print(1)
else:
    print(2)

for循环:

适用于序列、集合字典的遍历!
直接取的就是元素,会去掉外层包装

示例:

for x in [1,['a','b'],3,(4,5)]:
    if not isinstance(x,int):
        for y in x:
            print(y)
    else:
        print(x) 

注意:

for-else,while-else循环的最后会执行,一般用不到

循环的跳出

break 跳出循环,终止循环,对于for-else,while-else,不会执行else
continue 跳出当前循环,会执行else

示例:

for x in [1,2,3]:
    if x == 2:
        continue
    print(x)
else:
    print('EOF')

注意:

均作用于当前循环,多层循环要多个break
Python的for循环没有类似Java的指定次数的形式
    类似for(int i=0;i<10;i++):
        for x in range(0,10):
            print(x)
    类似for(int i=0;i<10;i+=2):步长为2
        for x in range(0,10,-2):
            print(x,end='-\n')   
    类似for(int i=10;i>0;i-=2):递减
        for x in range(10,0,-2):
            print(x,end='\n')   #print带参数
独有的特性:
    用for打印间隔步长的元素:
        a = [1,2,3,4,5,6,7,8]
        for x in range(0,len(a),2):
            print(a[x],end=' ')
        #输出 1 3 5 7 
    用切片用法取间隔元素:
        print(a[0:len(a):2])
        #输出 [1, 3, 5, 7]'''

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员的知识天地

Python爬虫新手教程:微医挂号网医生数据抓取

今天要抓取的一个网站叫做微医网站,地址为 https://www.guahao.com ,我们将通过python3爬虫抓取这个网址,然后数据存储到CSV里面,为...

14120
来自专栏卯金刀GG

【java基础】保留小数:java DecimalFormat format 方法的使用

37320
来自专栏程序员的知识天地

Python新手教程:Python微信定时自动给【女朋友】发送天气预报

6.函数中请求百度天气接口,得到该好友对应天气数据,解析处理数据,发送天气信息,完成该对象发送。

18030
来自专栏卯金刀GG

[mysql]java.sql.SQLException: Value'0000-00-00'异常解决办法

今天使用ssm做开发的时候,使用的是mysql数据库,其中一个表的字段是Date类型,如果该字段有值,切是日期类型的时候,显示没有问题;但是,如果是空的情况就会...

14720
来自专栏木二天空

009.Docker Compose部署及基础使用

Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用单个命令,您可以从...

10120
来自专栏新智元

Python 传奇:30 年崛起之路

作者 | 宋天龙,大数据技术专家,触脉咨询合伙人兼副总裁,前 Webtrekk 中国区技术和咨询负责人(Webtrekk,德国的在线数据分析服务提供商)。擅长数...

10450
来自专栏萌兔it

JavaScript第十九弹——ES6(8)Generator

Generator与Promise相同,都是ES6异步编程的解决方案。其实Generator就可以看做一个函数,返回的是一个遍历器对象,而这个返回的遍历器对象可...

6610
来自专栏卯金刀GG

JSONObject.fromObject 转换JSON字符串Map及javabean时间处理的问题

这几天的项目开发过程中遇到一个比较棘手的问题,主要是通用导出类中,使用了一个javabean转换成json字符串的问题,javabean中一个日期格式是“yyy...

18330
来自专栏Bingo的深度学习杂货店

Leetcode【473、698】

因此,这道题和下面的 Leetcode 698 几乎相同,Leetcode 698 是划分成 k 组,而这道题是划分成 4 组,因此我们把 Leetcode 6...

10210
来自专栏Bingo的深度学习杂货店

Leetcode【368、986】

最大可除子集。给一个包含不同数字的数组,找一个最大的子集,对于子集中的每个元素对 (Si, Sj) 满足 Si % Sj = 0 或者 Sj % Si = 0,...

9940

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励