首页 > 技术文章 > 三元表达式,if,while,for

amiee-785563694 2017-04-24 23:53 原文

一 元表达式

语法:

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

二 多分支 if+elif+else

多分支if+elif+else

1.2.4:多分支if+elif+else

if expession1:

    expr1_true_suite

elif expression2:

    expr2_true_suite

elif expession3:

    expr3_true_suite

else:

    none_of_the_above_suite

三 while

  • 条件为真就重复执行代码,直到条件不再为真,而if是条件为真,只执行一次代码就结束了
  • while有计数循环和无限循环两种,无限循环可以用于某一服务的主程序一直处于等待被连接的状态
  • break代表跳出本层循环,continue代表跳出本次循环
  • while循环在没有被break打断的情况下结束,会执行else后代码

四 for

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

五 练习

元素分类

有如下值集合 [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 = {
    "河北": {
        "石家庄": ["鹿泉", "藁城", "元氏"],
        "邯郸": ["永年", "涉县", "磁县"],
    }
    "河南": {
        ...
    }
    "山西": {
        ...
    }
 
}

 

推荐阅读