三元表达式,if,while,for
一 元表达式
语法:
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 = { "河北": { "石家庄": ["鹿泉", "藁城", "元氏"], "邯郸": ["永年", "涉县", "磁县"], } "河南": { ... } "山西": { ... } }