Python开发【第六篇】:Python基础条件和循环

目录

一、if语句

1、功能

2、语法

单分支,单重条件判断

多分支,多重条件判断

if + else

多分支if + elif + else

语句小结 + 案例

三元表达式

二、while语句

1、功能

2、语法

基本语法

计数循环

无限循环

while与break,continue,else连用

while语句小结 + 案例

三、for语句

1、功能

2、语法

基本语法

遍历序列类型

遍历可迭代对象或迭代器

for基于range()实现计数循环

for与break,continue,else

for语句小结 + 案例

四、练习

一、if语句

  1、功能

    计算机又被称作电脑,意思指计算机可以像人脑一样,根据周围环境条件(即expession 表达手法)的变化做出不同的反应(即执行代码)

    if语句就是来控制计算机实现这一功能

  2、语法

    单分支,多重条件判断

if expression:

    expr_true_suite

注释:expession为真执行代码expr_true_suite

    多分支,多重条件判断

if not  active or over_time >= 10:

    print(‘Warning:service is dead‘)

    warn_tag+=1

    if + else

if expression:

    expr_true_suite   

else:

    expr_false_suite

    多分支if + elif + else

if expession1:

    expr1_true_suite

elif expression2:

    expr2_true_suite

elif expession3:

    expr3_true_suite

else:

    none_of_the_above_suite

     if语句小结 + 案例

      1、if后表达式返回值为True执行其子代码块,然后此if语句到此终止,否则进入下一分支判断,直到满足其中一个分支,执行后终止if

      2、expression可以引入运算符:not,and,or,is,is ont

      3、多重expression为加强可读性最好用括号包含

      4、if与else缩进级别一致表示一对

      5、elif与else都是可多选的

      6、一个if判断最多只有一个else但是可以有多个elif

      7、else代表if判断if判断的终结

      8、expession可以是返回值为布尔值的表示式(例如:x > 1,x is not None)的形式,也可以是单个标准对象(例如:x = 1;if x :print(‘ok‘))

      9、所有标准对象均可用布尔值测试,同类型的对象之间可以比较大小。每个对象天生具有布尔 True 或False 值。空对象、值为零的任何数字或者Null对象None的布尔值都是False

      下面对象的布尔值是False

      None、False(布尔类型)、所有的值为零的数、0(整数)、0.0+0.0j(复数)、""(空字符串)、[](空列表)、()(空元组)、{}(空字典)

    案例:

#!/usr/bin/env python
#_*_coding:utf-8_*_

‘‘‘
提示输入用户名和密码

验证用户名和密码
     如果错误,则输出用户名或密码错误
     如果成功,则输出 欢迎,XXX!
‘‘‘

import getpass

name=input(‘用户名: ‘)
passwd=getpass.getpass(‘密码: ‘)

if name == ‘alex‘ and passwd == ‘123‘:
    print(‘土豪里边请‘)
else:
    print(‘土鳖请走开‘)

用户登陆验证

#!/usr/bin/env python
#_*_coding:utf-8_*_

‘‘‘
 根据用户输入内容打印其权限

 alex --> 超级管理员
 eric --> 普通管理员
 tony,rain --> 业务主管
 其他 --> 普通用户
‘‘‘
name = input(‘请输入用户名:‘)

if name == "alex":
    print("超级管理员")
elif name == "eric":
    print("普通管理员")
elif name == "tony" or name == "rain":
    print("业务主管")
else:
    print("普通用户")

根据用户输入内存输出权限

    三元表达式:

      语法:expr_true_suite if expession else expr_false_suite

      案例:

>>> active=1
>>> print(‘service is active‘) if active else print(‘service is inactive‘)
service is active

      案例:

>>> x=1
>>> y=2
>>> smaller=x if x < y else y
>>> smaller
1

二、while语句

  功能

  while循环的本质就是让计算机在满足某一种条件的前提下去重复做同一件事情(即while循环为条件循环,包括:1、条件计数循环,2、条件无限循环)

  这一条件指:条件表达式

  同一件事指:while循环体包含的代码块

  重复的事情例如:从1加到10000,求1-10000内所有的奇数,服务等待链接

  语法

    基本语法

while expression:

    suite_to_repeat

注解:重复执行suite_to_repeat,直到expression不再为真

    循环计数

count=0
while (count < 9):
    print(‘the loop is %s‘ %count)
    count+=1

    无限循环

count=0
while True:
    print(‘the loop is %s‘ %count)
    count+=1
---------------------------------------
tag=True
count=0
while tag:
    if count == 9:
        tag=False
    print(‘the loop is %s‘ %count)
    count+=1

    while与break,continue,else连用

count=0
while (count < 9):
    count+=1
    if count == 3:
        print(‘跳出本层循环,即彻底终结这一个/层while循环‘)
        break
    print(‘the loop is %s‘ %count)

break跳出本层循环    

count=0
while (count < 9):
    count+=1
    if count == 3:
        print(‘跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环‘)
        continue
    print(‘the loop is %s‘ %count)

continue跳出本次循环

count=0
while (count < 9):
    count+=1
    if count == 3:
        print(‘跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环‘)
        continue
    print(‘the loop is %s‘ %count)
else:
    print(‘循环不被break打断,即正常结束,就会执行else后代码块‘)

count=0
while (count < 9):
    count+=1
    if count == 3:
        print(‘跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环‘)
        break
    print(‘the loop is %s‘ %count)
else:
    print(‘循环被break打断,即非正常结束,就不会执行else后代码块‘)

else在循环完成后执行,break会跳过else

    while语句小结 + 案例

      1、条件为真就重复执行代码,直到条件不在为真,而if是条件为真,只执行一次代码就结束了

      2、while有计数循环和无限循环两种,无限循环可以用于某一服务的主要程序一直处于等待被链接的状态

      3、break代表跳出本层循环,continue代表跳出本次循环

      4、while循环在没有被break打断的情况下结束,会执行else后代码

    案例:

while True:
        handle, indata = wait_for_client_connect()
        outdata = process_request(indata)
        ack_result_to_client(handle, outdata)

服务等待链接

import getpass

account_dict={‘alex‘:‘123‘,‘eric‘:‘456‘,‘rain‘:‘789‘}
count = 0
while count < 3:
    name=input(‘用户名: ‘).strip()
    passwd=getpass.getpass(‘密码: ‘)
    if name in account_dict:
        real_pass=account_dict.get(name)
        if passwd == real_pass:
            print(‘登陆成功‘)
            break
        else:
            print(‘密码输入错误‘)
            count+=1
            continue
    else:
        print(‘用户不存在‘)
        count+=1
        continue
else:
    print(‘尝试次数达到3次,请稍后重试‘)

用户登陆验证

三、for语句

    功能

      基本语法

for iter_var in iterable:

    suite_to_repeat

注解:每次循环, iter_var 迭代变量被设置为可迭代对象(序列, 迭代器, 或者是其他支持迭代的对 象)的当前元素, 提供给 suite_to_repeat 语句块使用.

    遍历序列类型

name_list=[‘alex‘,‘eric‘,‘rain‘,‘xxx‘]

#通过序列项迭代
for i in name_list:
    print(i)

#通过序列索引迭代
for i in range(len(name_list)):
    print(‘index is %s,name is %s‘ %(i,name_list[i]))

#基于enumerate的项和索引
for i,name in enumerate(name_list,2):
    print(‘index is %s,name is %s‘ %(i,name))

    遍历可迭代对象或迭代器

      迭代对象:就是一个具有next()方法的对象,obj.next()每执行一次,返回一行内容所有内容迭代完后

      迭代器引发一个StopIteration异常告诉程序循环结束,for语句在内部调用next()并捕获异常

      for循环遍历迭代器或可迭代对象与遍历序列的方法并无二致,只是在内部做了调用迭代器next(),并捕获异常,终止循环操作

      很多时候你根本无法区分for循环的是序列对象还是迭代器

>>> f=open(‘a.txt‘,‘r‘)

for i in f:
    print(i.strip())
hello
everyone

    for基于range()实现计数循环

     range()语法:

     range(start,end,step=1):过顾头不顾尾

      1、range(10):默认step=1,start=0,生成可迭代对象,包含[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

      2、range(1,10):指定start=1,end=10,默认step=1,生成可迭代对象,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]

      3、range(1,10,2):指定start=1,end=10,step=2,生成可迭代对象,包含[1, 3, 5, 7, 9]  

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for i in range(10):
    print(i)
0
1
2
3
4
5
6
7
8
9

注释:for基于range()实现计数循环,range()生成可迭代对象,说明for循环本质还是一种迭代循环

    for与break,continue,else

    与while相同

    for语句小结 + 案例

      1、for循环为迭代循环

      2、可遍历序列成员(字符串、列表、元组)

      3、可遍历任何可迭代对象(字典、文件等)

      4、可以使用在列表解析和生成器表达式中

      5、break,continue,else在for中用法与while中一致

    案例:

albums = (‘Poe‘, ‘Gaudi‘, ‘Freud‘, ‘Poe2‘)
years = (1976, 1987, 1990, 2003)

#sorted:排序
for album in sorted(albums):
    print(album)

#reversed:翻转
for album in reversed(albums):
    print(album)

#enumerate:返回项和
for i in enumerate(albums):
    print(i)
#zip:组合
for i in zip(albums,years):
    print(i)

四、练习

  链接:http://www.cnblogs.com/Jiayongxu/p/6984904.html

一、元素分类

有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {‘k1‘: 大于66的所有值, ‘k2‘: 小于66的所有值}

二、查找
查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
    li = ["alec", " aric", "Alex", "Tony", "rain"]
    tu = ("alec", " aric", "Alex", "Tony", "rain")
    dic = {‘k1‘: "alex", ‘k2‘: ‘ aric‘,  "k3": "Alex", "k4": "Tony"}

三、输出商品列表,用户输入序号,显示用户选中的商品
    商品 li = ["手机", "电脑", ‘鼠标垫‘, ‘游艇‘]

四、购物车
功能要求:

要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]
 五、用户交互,显示省市县三级联动的选择
时间: 2024-10-06 17:04:52

Python开发【第六篇】:Python基础条件和循环的相关文章

Python开发【第一篇】基础题目二

1 列表题 l1 = [11, 22, 33] l2 = [22, 33, 44] # a. 获取l1 中有,l2中没有的元素 for i in l1: if i not in l2: print(i) # 11 # b. 获取l2 中有,l1中没有的元素列表 for i in l2: if i not in l1: print(i) # 44 # c. 获取l1 和 l2 中内容相同的元素 for i in l1: if i in l2: print(i, end=" ") # 22

Python开发【第一篇】基础题目

1.求1-2+3-4+5.....99的所有数的和 n = 1 s = 0 while n<100: temp = n%2 if temp == 0: #偶数 s = s-n else: s = s+n n = n+1 print(s) 2.求1-100的所有数的和 n = 1 s = 0 while n < 101: s = s+n n = n+1 print(s) #一行代码搞定 print (sum(range(101))) 3.九九乘法表 for i in range(1,10): f

Python开发【第一篇】:目录

本系列博文改编自武沛齐老师的原创博文,主要包含  Python基础.前端开发.Web框架.缓存以及队列等内容 ,用于学习记录成长!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python

第六篇 模块基础

目录 第六篇 模块基础 一 模块的四种形式 二 import和from...import 三 循环导入问题 四 模块的搜索路径 五 python文件的两种用途 六 包 第六篇 模块基础 一 模块的四种形式 啥是模块 模块是一系列功能的集合体,而函数是某一功能的集合体,因此模块可以看成是一堆函数的集合体.一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块.如果这个py文件的文件名为module.py,模块名则是module. 模块的四种形式 2.1 自定义模块:如果你自己写一个P

Python开发【第一篇】:初识Python

Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五!!! 由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!! Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众

Python开发【第二篇】:初识Python

Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第四!!!   Python应用越来越广泛并且也逐渐得到业内的认可!!! Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联网企业都

跟着老男孩教育学Python开发【第一篇】:初识Python

Python简介 Python前世今生 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 注:ABC语言是由Guido参与设计的一种教学语言,是专门为非专业程序员设计的.就Guido本人看来,ABC这种语言非常优美和强大,但是ABC语言并没有成功,究其原因,Guido认为是非开发造成的.Guido决心在Python中避免这一错误.同时,他还想实现在AB

Python开发【第一篇】:Python简介

Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 2016年11月TIOBE语言排行榜 甩PHP几条街 由上图可见,Python呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!! Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联

Python开发【Django】:基础

Django基本配置 Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能 1.Django安装 # windows 直接用pip进行安装 pip/pip3 install django # 生成的django文件加入到系统环境变量 C:\Python35\Scripts 无需安装,原装Python环境 ps:如果自带2.6,请更新至3.0以上 环境: