Python基础之条件和循环

本文详细介绍了Python中的if、while及for语句的功能与用法,包括条件判断、循环控制及迭代操作等内容,并提供了丰富的示例代码。

阅读目录

  • 一.if语句

  • 1.1功能
  • 1.2语法
  • 1.2.1:单分支,单重条件判断
  • 1.2.2:单分支,多重条件判断
  • 1.2.3:if + else
  • 1.2.4:多分支if + elif +else
  • 1.2.5if语句小结
  • 1.3案例
  • 1.4三元表达式
  • 二.while语句

  • 2.1功能
  • 2.2语法
  • 2.2.1:基本语法
  • 2.2.2:计数循环
  • 2.2.3:计数无限循环
  • 2.2.4:while与break,continue,else连用
  • 2.2.5:while语句小结
  • 2.3:案例
  • 三.for语句

  • 3.1功能语法
  • 3.2语法
  • 3.2.1:基本语法
  • 3.2.2:遍历序列类型
  • 3.2.3:遍历可迭代对象或迭代器
  • 3.2.4:for基于range()实现计数循环
  • 3.2.5:for与break,continue,else
  • 3.2.6:for语句小结
  • 3.3:案例
  • 四.练习

一.if语句                                                   

1.1功能                              

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

 

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

1.2语法                             

1.2.1:单分支,单重条件判断                                                                     

if 'aaa':

  print ('yes')

  注释:如果aaa为真,则执行print,打印出yes                               

1.2.2:单分支,多重条件判断                                                                     

 

i = 0
if not 'test' or 111 >=10:
print ('continue')
i += 1

 

1.2.3:if + else                                                                                          

if 'expression':
print ('yes')
else:
print ('no')

1.2.4:多分支if +elif+else                                                                           

if 'expression':
print ('one')
elif 'two':
print('two')
elif 'thress':
print('three')
else:
print ('no')

1.2.5:if语句小结                                                                                          

1.if表达式返回值为True则执行其子代码块,然后此if语句到此终结,否则进入下一分支判断,直到满足其中一个分支,执行后终结if
2.expression可以引入运算符:not,and,or,is,is not
3.多重expression为加强可读性最好用括号包含
4.if与else缩进级别是一致表示是一对
5.elif与else都是可选的
6.一个if判断最多只有一个else但是可以有多个elif
7.else代表if判断的终结
8.expression可以是返回值为布尔值的表达式(例x>1,x is not None)的形式,也可是单个标准对象(例x=1;if x: print('ok')
9.所有标准对象均可用布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布尔True或False值。空对象、值为零的任何数字或者Null对象None的布尔值都是False
下列对象的布尔值是False

1.3案例                                                                        

 

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

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

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

import getpass

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

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

用户登陆验证
View Code

 

#!/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("普通用户")

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

 

 

1.4三元表达式                                                               

案例一
>>> 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语句                                             

2.1功能                                                                       

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

这一条件指:条件表达式

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

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

2.2语法                                                                         

2.2.1:基本语法

while True:
print ('重复循环')
注释:重复执行‘重复循环’,直到‘重复循环’不再为真为止

2.2.2计数循环                                                                                          

 

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

 

2.2.3                                                                                                    

 

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 
View Code

 

2.2.4:while与break,continue,else连用                  

 

count = 0
while count <9:          #计数限制必须小于9
    count +=1
    if count == 3:
        print('zaijian')
        break            #当count = 3的时候,终止本次循环,并退出
    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跳出本次循环
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
else语句(存在疑问)

2.2.5案例                                                              

#import getpass

account_dict={'alex':'123','eric':'456','rain':'789'}
count = 0
while count < 3:
    name=input('用户名: ').strip()
    passwd=input ('密码: ')
    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循环                                                 

3.1功能                            

for循环提供了python中最强大的循环接口(for循环是一种迭代循环机制,而while循环是条件循环,迭代即重复相同的逻辑操作,每次操作都是基于上一次的结果而进行的)

3.2.1:基本语法                              

 

for iter_var in iterable:

 

    suite_to_repeat

 

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

3.2.2:遍历序列的类型                        

 

 

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))
例子

 

3.2.3:遍历可迭代或迭代器                        

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

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

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

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

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

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

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

range()语法

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

  • range(10):默认step=1,start=0,生成可迭代对象,包含[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • range(1,10):指定start=1,end=10,默认step=1,生成可迭代对象,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 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)
1
2
3
4
5
6
7
8
9
View Code

 

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

3.2.5:for与break,continue,else

同while

3.2.6:for循环小结

 

  • for循环为迭代循环
  • 可遍历序列成员(字符串,列表,元组)
  • 可遍历任何可迭代对象(字典,文件等)
  • 可以用在列表解析和生成器表达式中
  • 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)
View Code

 

 四.练习                                                     

 

一、元素分类

有如下值集合 [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},
]
 五、用户交互,显示省市县三级联动的选择

dic = {
    "河北": {
        "石家庄": ["鹿泉", "藁城", "元氏"],
        "邯郸": ["永年", "涉县", "磁县"],
    }
    "河南": {
        ...
    }
    "山西": {
        ...
    }
 
}
View Code

 

 


 

 

 

转载于:https://www.cnblogs.com/zhangzhenxing/p/6010656.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值