Python运维开发基础06-语法基础【转】

上节作业回顾 (讲解+温习120分钟)

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# author:Mr.chen
# 添加商家入口和用户入口并实现物品分类功能的“购物车程序”

import os,time goods_dict = { "家用电器":{ "冰箱":1200, "空调":2500, "电视":4000, "洗衣机":2000, "加湿器":500, "净化器":3000 }, "食品":{ "草莓":200, "香蕉":100, "梨":300, "橙子":400, "火龙果":600, "大龙虾":1200 }, "母婴":{ "奶粉":500, "纸尿裤":200, "儿童床":4000, "儿童水壶":1000, "营养辅食":2500, "婴儿带":1500, "安全坐骑":8000 }, "电脑配件":{ "显示器":1500, "CPU":2500, "内存":3000, "硬盘":2000, "主板":1000, "显卡":5500, "光驱":800 }, "家具":{ "柜子":2000, "桌子":1000, "床":3000, "沙发":5000, "灯台":500, "椅子":800 } } Tag = True #控制程序退出 Tag_values = True #控制商品价格修改分支功能的关闭 Tag_add = True #控制商品新增分支功能的关闭 buy_List = {} #购物车字典 while Tag : #第一级入口选择菜单 os.system("clear") print ("《用户入口选择》".center(50,'-')) print ("\n") print ("1,用户入口".center(50)) print ("2,商家入口".center(50)) print ("3,程序退出".center(50)) print ("\n") choice = input ("请选择:") if choice == "1" : while Tag : #第二级用户购买功能选择菜单 os.system("clear") print ("《用户购买菜单》".center(50,'-')) print ("\n") print ("1,商品购买".center(50)) print ("2,购物车".center(50)) print ("3,结帐退出".center(50)) print ("\n") choice = input ("请选择(输入b返回上级菜单):") if choice == "b" or choice == "B" : break elif choice == "1" : pass #仿照商家入口写法,同学们帮我完成这三个功能 elif choice == "2" : pass #仿照商家入口写法,同学们帮我完成这三个功能 elif choice == "3" : pass #仿照商家入口写法,同学们帮我完成这三个功能 else : print ("你的输入有误!") time.sleep(1.5) elif choice == "2" : while Tag : #第二级商家管理功能选择菜单 Tag_values = True Tag_add = True os.system("clear") print ("《商家管理功能清单》".center(50,"-")) print ("\n") print ("1,修改现有商品价格".center(50)) print ("2,新增商品".center(50)) print ("\n") choice = input ("请选择(输入b返回上级菜单):") if choice == "b" or choice == "B" : break elif choice == "1" : while Tag_values : #第三级价格修改商品类别选择菜单 os.system("clear") print ("《商品类别选择清单》".center(50,"-")) print ("\n") for type in goods_dict : print (type.center(50)) print ("\n") type_input = input ("请输入你想修改的商品的类别(输入b返回上级菜单):") if type_input == "b" or type_input == "B" : break elif type_input in goods_dict : while Tag_values : #第四级价格修改商品选择清单 os.system("clear") print ("《{}类别商品清单》".format(type_input).center(50,"-")) print ("\n") for item in goods_dict[type_input] : print (item.center(50)) print ("\n") item_input = input ("请输入你想修改价格的商品名称(输入b返回上级菜单):") if item_input == "b" or item_input == "B" : break elif item_input in goods_dict[type_input] : while Tag_values : print ("此商品的价格为:{}元".format(goods_dict[type_input][item_input])) value_input = input ("请输入要修改的价格(输入b返回上级菜单):") if value_input == "b" or value_input == "B" : break elif value_input.isdigit() : goods_dict[type_input][item_input] = int(value_input) print ("{}商品的价格修改成功!".format(item_input)) Tag_values = False time.sleep(2) else : print ("您的输入有误!") else : print ("你的输入有误!") time.sleep(1.5) else : print ("你的输入有误!") time.sleep(1.5) elif choice == "2" : while Tag_add : #第三级商品新增种类输入功能菜单 os.system("clear") print ("\n") print ("\n") print ("\n") type_input = input ("请输入你想新增的商品类别:(输入b返回上级菜单)") if type_input == "b" or type_input == "B" : break elif type_input in goods_dict : while Tag_add : #第四级商品新增名称输入功能菜单 print ("\n") print ("\n") print ("\n") item_input = input ("请输入你想新增的商品名称(输入b返回上级菜单):") if item_input == "b" or item_input == "B" : break elif item_input not in goods_dict[type_input] : while Tag_add : #第五级商品新增价格输入功能菜单 values_input = input ("请输入新增商品的价格:") if values_input.isdigit() : goods_dict[type_input][item_input] = int(values_input) print ("种类:{}-名称:{}-价格:{}的商品录入成功!".format(type_input,item_input,values_input)) Tag_add = False time.sleep(1.5) else : print ("请输入数字价格!") else : print ("系统里已经存在此商品,或者您的输入有误!") time.sleep(1.5) else : print ("没有这个商品类别,请重新输入!") time.sleep(1.5) else : print ("输入有误!") time.sleep(1.5) elif choice == "3" : Tag = False else : print ("你的输入有误!") time.sleep(1.5) else : print ("程序终止运行!") 

一,集合的使用

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重复,把一个列表变成集合,就自动去重复了
  • 关系测试,测试两组数据之前的交集,差集,并集等关系

1.1 集合的创建

#代码演示:

>>> s = {1,3,5,7} >>> type (s) <class 'set'> >>> t = {"a","b","c"} >>> type (t) <class 'set'> 

1.2 集合的去重复特性

#代码演示:

>>> a = [1,3,5,7,9,3,5,7,4,2] >>> a = set (a) #将列表转换成集合 >>> a {1, 2, 3, 4, 5, 7, 9} #元素去掉了重复 >>> a = list(a) #将集合转换回列表 >>> a [1, 2, 3, 4, 5, 7, 9] #列表中重复元素消失了 

1.3 集合的并集(|)

#代码演示:

>>> a = {1,3,5,7,9}
>>> b = {1,3,4,6,8} >>> a | b {1, 3, 4, 5, 6, 7, 8, 9} #两个集合的元素合并 

1.4 集合的交集(&)

#代码演示:

>>> a = {1,3,5,7,9}
>>> b = {1,3,4,6,8} >>> a & b #两个集合共有的元素 {1, 3}

1.5 集合的差集(-)

#代码演示:

>>> a = {1,3,5,7,9}
>>> b = {1,3,4,6,8} >>> a - b #集合a独有的元素 {9, 5, 7} 

1.6 集合的对称差集(^)

#代码演示:

>>> a = {1,3,5,7,9}
>>> b = {1,3,4,6,8} >>> a ^ b #去掉两个集合共有的元素,合并各自独有元素 {4, 5, 6, 7, 8, 9} 

1.7 集合的元素添加(add,update)

#代码演示:

>>> a = {1,3,5,7,9} >>> a.add("abc") #添加单个元素 >>> a {1, 3, 5, 7, 9, 'abc'} >>> a.add("Tom") >>> a {1, 3, 5, 7, 9, 'Tom', 'abc'} >>> a.update("a","b","c") #添加多个元素 >>> a {1, 3, 'c', 5, 7, 9, 'b', 'a', 'Tom', 'abc'} 

1.8 集合的元素删除(remove,del)

#代码演示:

>>> a
{1, 'c', 5, 7, 9, 'b', 'a', 'Tom', 'abc'} >>> a.remove(1) #集合元素的查找删除 >>> a {'c', 5, 7, 9, 'b', 'a', 'Tom', 'abc'} >>> del a #删除整个集合 >>> a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a' is not defined 

1.9 判断元素是否在集合中(in)

#代码演示:

>>> a = {1,3,5,7,9}
>>> 1 in a True >>> 2 in a False 

1.10 集合元素的个数(len)

#代码演示:

>>> a = {1,3,5,7,9}
>>> len(a) 5

二,数据运算

2.1 算数运算

运算符 描述 实例
+ 加-两个对象相加 a+b输出结果30
- 减-得到负数或一个数减去另一个数 a-b输出结果-10
* 乘-两个数相乘或是返回一个被重复若干次的字符串 a*b
/ 除-x除以y b/a输出结果2
% 取模-返回除法的余数 b%a输出结果0
** 幂-返回x的y次幂 a**b为10的20次方,输出结果1000000000
// 取整除-返回商的整数部分 9//2输出结果4,9.0//2.0输出结果4.0
#代码演示:

>>> a = 5
>>> b = 3 >>> a + b 8 >>> a - b 2 >>> a * b 15 >>> a / b 1.6666666666666667 >>> a % b 2 >>> a ** b 125 >>> a // b 1 

2.2 比较运算

运算符 描述 实例
== 等于-比较对象是否相等 (a==b)返回False
!= 不等于-比较两个对象是否不想等 (a!=b)返回true
<> 不等于-比较两个对象是否不相等 (a<>b)返回True。这个运算符类似!=。
> 大于-返回x是否大于y (a>b)返回False
< 小于-返回x是否小于y (a< b)返回True
>= 大于等于-返回x是否大于等于y (a>=b)返回False
<= 小于等于-返回x是否小于等于y (a<=b)返回True
#代码演示:

>>> 3 == 3
True
>>> 3 == 5 False >>> "abc" == "abc" True >>> "abc" == "abcd" False >>> 3 > 5 False >>> 3 < 5 True >>> 3 >= 5 False >>> 3 <= 5 True 

2.3 赋值运算

运算符 描述 实例
= 简单的赋值运算符 c=a+b将a+b的运算结果赋值为0
+= 加法赋值运算符 c+=a等效于c=c+a
-= 减法赋值运算符 c-=a等效于c=c-a
*= 乘法赋值运算符 c*=a等效于c=c*a
/= 除法赋值运算符 c/=a等效于c=c/a
%= 取模赋值运算符 c%=a等效于c=c%a
**= 幂赋值运算符 c**=a等效于c=c**a
//= 取整除赋值运算符 c//=a等效于c=c//a
#代码演示:

>>> a = 5
>>> b = 4 >>> a += b #a = a + b >>> a 9 >>> a -= b #a = a - b >>> a 5 >>> a *= b #a = a * b >>> a 20 >>> a /= b #a = a / b >>> a 5.0 >>> a %= b #a = a % b >>> a 1.0 >>> a = 2 >>> a **= b #a = a ** b >>> a 16 >>> a //= b #a = a // b >>> a 4 

2.4 逻辑运算

运算符 描述 实例
and 布尔"与"-如果x为False,x and y返回False,否则它返回y的计算值 (a and b)返回True
or 布尔"或"-如果x是True,它返回True,否则它返回y的计算值 (a or b)返回True
not 布尔"非"-如果x为True,返回False,如果x为False,它返回True not(a and b)返回false
#代码演示:

if username == "yunjisuan" and userpassword == "666666" : print ("登陆成功!") #两个全都要为真,才为真,并且的意思 if username == "yunjisuan" or username == "benet" : pirnt ("用户名输入正确!") #只要有一个为真就为真,或者的意思 

2.5 成员运算

运算符 描述 实例
in 如果在指定的序列中找到值返回True,否则返回False x在y的序列中,如果x在y序列中返回True
not in 如果在指定的序列中没有找到值返回True,否则返回False。 x不在y序列中,如果x不在y序列中返回True
#代码演示:

>>> "a" in "abcd" #字符串 True >>> "e" in "abcd" False >>> "a" in ["a","b","c"] #列表 True >>> "e" in ["a","b","c"] False >>> "a" in {"a","b","c"} #集合 True >>> "e" in {"a","b","c"} False >>> "a" in {"a":1,"b":3,"c":5} #字典 True >>> 3 in {"a":1,"b":3,"c":5} False >>> 5 in ("a","b",5) #元组 True >>> 2 in ("a","b",5) False 

2.6 身份运算

运算符 描述 实例
is is是判断两个标识符是不是引用自一个对象 x is y,如果id(x)等于id(y),is返回结果1
is not is not是判断两个标识符是不是引用自不同对象 x is not y,如果id(x)不等于id(y)。is not返回结果1

面向对象才会用,这里不介绍

2.7 位运算

运算符 描述 实例
& 按位与运算符 (a&b)输出结果12,二进制解释:0000 1100
| 按位或运算符 (a|b)输出结果61,二进制解释:0011 1101
^ 按位异或运算符 (a^b)输出结果49,二进制解释:0011 0001
~ 按位取反运算符 (~a)输出结果-61,二进制解释:1100 0011,在一个有符号二进制数的补码形式
<< 左移动运算符 a<< 2输出结果240,二进制解释:1111 0000
>> 右移动运算符 a>>2输出结果15,二进制解释:0000 1111

运算演示:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:Mr.chen

a = 60      # 60 = 0011 1100
b = 13      # 13 = 0000 1101 c = 0 c = a & b # 12 = 0000 1100 print (c) c = a | b # 61 = 0011 1101 print (c) c = a ^ b # 49 = 0011 0001 相同为0,不同为1 print (c) c = ~a # -61 = 1100 0011 #运维班不讲 print (c) c = a << 2 # 240 = 1111 0000 #运维班不讲 print (c) c = a >> 2 # 15 = 0000 1111 #运维班不讲 print (c) 

三,Linux中的惊喜

请同学们在文件中运行以下代码,惊喜就会到来

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# author:Mr.chen
# 惊喜

for color in range(30,37) : for i in [0,1,4,5,0] : print ("\033[{}m 恭喜你,中奖了 !\033[{}m".format(color,i).center(70,"*"))

请同学们根据惊喜的结果和代码含义,自己反推这是为什么?

四,结语与阶段性作业

Python语法基础部分到此节就全部学习完了。和基础语法相关的所有常用用法和技巧,基本也就这么多了。在语法基础篇中,我着重训练同学的是作为开发应该具备的一种逻辑思路。有了思路,我们就需要将思路存储在硬盘上,而不再是内存里。因此接下来,我们要学习的就是文件基础篇

阶段性检测作业:

完成时间:间隔一次课

  • 根据上节回顾里的代码样例,完成用户入口的功能仿写
  • 无法完成的同学,Python语法基础阶段的学习不合格

转自

Python运维开发基础06-语法基础 - 陈思齐 - 博客园 https://www.cnblogs.com/chensiqiqi/p/9163053.html

上节作业回顾 (讲解+温习120分钟)

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# author:Mr.chen
# 添加商家入口和用户入口并实现物品分类功能的“购物车程序”

import os,time goods_dict = { "家用电器":{ "冰箱":1200, "空调":2500, "电视":4000, "洗衣机":2000, "加湿器":500, "净化器":3000 }, "食品":{ "草莓":200, "香蕉":100, "梨":300, "橙子":400, "火龙果":600, "大龙虾":1200 }, "母婴":{ "奶粉":500, "纸尿裤":200, "儿童床":4000, "儿童水壶":1000, "营养辅食":2500, "婴儿带":1500, "安全坐骑":8000 }, "电脑配件":{ "显示器":1500, "CPU":2500, "内存":3000, "硬盘":2000, "主板":1000, "显卡":5500, "光驱":800 }, "家具":{ "柜子":2000, "桌子":1000, "床":3000, "沙发":5000, "灯台":500, "椅子":800 } } Tag = True #控制程序退出 Tag_values = True #控制商品价格修改分支功能的关闭 Tag_add = True #控制商品新增分支功能的关闭 buy_List = {} #购物车字典 while Tag : #第一级入口选择菜单 os.system("clear") print ("《用户入口选择》".center(50,'-')) print ("\n") print ("1,用户入口".center(50)) print ("2,商家入口".center(50)) print ("3,程序退出".center(50)) print ("\n") choice = input ("请选择:") if choice == "1" : while Tag : #第二级用户购买功能选择菜单 os.system("clear") print ("《用户购买菜单》".center(50,'-')) print ("\n") print ("1,商品购买".center(50)) print ("2,购物车".center(50)) print ("3,结帐退出".center(50)) print ("\n") choice = input ("请选择(输入b返回上级菜单):") if choice == "b" or choice == "B" : break elif choice == "1" : pass #仿照商家入口写法,同学们帮我完成这三个功能 elif choice == "2" : pass #仿照商家入口写法,同学们帮我完成这三个功能 elif choice == "3" : pass #仿照商家入口写法,同学们帮我完成这三个功能 else : print ("你的输入有误!") time.sleep(1.5) elif choice == "2" : while Tag : #第二级商家管理功能选择菜单 Tag_values = True Tag_add = True os.system("clear") print ("《商家管理功能清单》".center(50,"-")) print ("\n") print ("1,修改现有商品价格".center(50)) print ("2,新增商品".center(50)) print ("\n") choice = input ("请选择(输入b返回上级菜单):") if choice == "b" or choice == "B" : break elif choice == "1" : while Tag_values : #第三级价格修改商品类别选择菜单 os.system("clear") print ("《商品类别选择清单》".center(50,"-")) print ("\n") for type in goods_dict : print (type.center(50)) print ("\n") type_input = input ("请输入你想修改的商品的类别(输入b返回上级菜单):") if type_input == "b" or type_input == "B" : break elif type_input in goods_dict : while Tag_values : #第四级价格修改商品选择清单 os.system("clear") print ("《{}类别商品清单》".format(type_input).center(50,"-")) print ("\n") for item in goods_dict[type_input] : print (item.center(50)) print ("\n") item_input = input ("请输入你想修改价格的商品名称(输入b返回上级菜单):") if item_input == "b" or item_input == "B" : break elif item_input in goods_dict[type_input] : while Tag_values : print ("此商品的价格为:{}元".format(goods_dict[type_input][item_input])) value_input = input ("请输入要修改的价格(输入b返回上级菜单):") if value_input == "b" or value_input == "B" : break elif value_input.isdigit() : goods_dict[type_input][item_input] = int(value_input) print ("{}商品的价格修改成功!".format(item_input)) Tag_values = False time.sleep(2) else : print ("您的输入有误!") else : print ("你的输入有误!") time.sleep(1.5) else : print ("你的输入有误!") time.sleep(1.5) elif choice == "2" : while Tag_add : #第三级商品新增种类输入功能菜单 os.system("clear") print ("\n") print ("\n") print ("\n") type_input = input ("请输入你想新增的商品类别:(输入b返回上级菜单)") if type_input == "b" or type_input == "B" : break elif type_input in goods_dict : while Tag_add : #第四级商品新增名称输入功能菜单 print ("\n") print ("\n") print ("\n") item_input = input ("请输入你想新增的商品名称(输入b返回上级菜单):") if item_input == "b" or item_input == "B" : break elif item_input not in goods_dict[type_input] : while Tag_add : #第五级商品新增价格输入功能菜单 values_input = input ("请输入新增商品的价格:") if values_input.isdigit() : goods_dict[type_input][item_input] = int(values_input) print ("种类:{}-名称:{}-价格:{}的商品录入成功!".format(type_input,item_input,values_input)) Tag_add = False time.sleep(1.5) else : print ("请输入数字价格!") else : print ("系统里已经存在此商品,或者您的输入有误!") time.sleep(1.5) else : print ("没有这个商品类别,请重新输入!") time.sleep(1.5) else : print ("输入有误!") time.sleep(1.5) elif choice == "3" : Tag = False else : print ("你的输入有误!") time.sleep(1.5) else : print ("程序终止运行!") 

一,集合的使用

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重复,把一个列表变成集合,就自动去重复了
  • 关系测试,测试两组数据之前的交集,差集,并集等关系

1.1 集合的创建

#代码演示:

>>> s = {1,3,5,7} >>> type (s) <class 'set'> >>> t = {"a","b","c"} >>> type (t) <class 'set'> 

1.2 集合的去重复特性

#代码演示:

>>> a = [1,3,5,7,9,3,5,7,4,2] >>> a = set (a) #将列表转换成集合 >>> a {1, 2, 3, 4, 5, 7, 9} #元素去掉了重复 >>> a = list(a) #将集合转换回列表 >>> a [1, 2, 3, 4, 5, 7, 9] #列表中重复元素消失了 

1.3 集合的并集(|)

#代码演示:

>>> a = {1,3,5,7,9}
>>> b = {1,3,4,6,8} >>> a | b {1, 3, 4, 5, 6, 7, 8, 9} #两个集合的元素合并 

1.4 集合的交集(&)

#代码演示:

>>> a = {1,3,5,7,9}
>>> b = {1,3,4,6,8} >>> a & b #两个集合共有的元素 {1, 3}

1.5 集合的差集(-)

#代码演示:

>>> a = {1,3,5,7,9}
>>> b = {1,3,4,6,8} >>> a - b #集合a独有的元素 {9, 5, 7} 

1.6 集合的对称差集(^)

#代码演示:

>>> a = {1,3,5,7,9}
>>> b = {1,3,4,6,8} >>> a ^ b #去掉两个集合共有的元素,合并各自独有元素 {4, 5, 6, 7, 8, 9} 

1.7 集合的元素添加(add,update)

#代码演示:

>>> a = {1,3,5,7,9} >>> a.add("abc") #添加单个元素 >>> a {1, 3, 5, 7, 9, 'abc'} >>> a.add("Tom") >>> a {1, 3, 5, 7, 9, 'Tom', 'abc'} >>> a.update("a","b","c") #添加多个元素 >>> a {1, 3, 'c', 5, 7, 9, 'b', 'a', 'Tom', 'abc'} 

1.8 集合的元素删除(remove,del)

#代码演示:

>>> a
{1, 'c', 5, 7, 9, 'b', 'a', 'Tom', 'abc'} >>> a.remove(1) #集合元素的查找删除 >>> a {'c', 5, 7, 9, 'b', 'a', 'Tom', 'abc'} >>> del a #删除整个集合 >>> a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a' is not defined 

1.9 判断元素是否在集合中(in)

#代码演示:

>>> a = {1,3,5,7,9}
>>> 1 in a True >>> 2 in a False 

1.10 集合元素的个数(len)

#代码演示:

>>> a = {1,3,5,7,9}
>>> len(a) 5

二,数据运算

2.1 算数运算

运算符 描述 实例
+ 加-两个对象相加 a+b输出结果30
- 减-得到负数或一个数减去另一个数 a-b输出结果-10
* 乘-两个数相乘或是返回一个被重复若干次的字符串 a*b
/ 除-x除以y b/a输出结果2
% 取模-返回除法的余数 b%a输出结果0
** 幂-返回x的y次幂 a**b为10的20次方,输出结果1000000000
// 取整除-返回商的整数部分 9//2输出结果4,9.0//2.0输出结果4.0
#代码演示:

>>> a = 5
>>> b = 3 >>> a + b 8 >>> a - b 2 >>> a * b 15 >>> a / b 1.6666666666666667 >>> a % b 2 >>> a ** b 125 >>> a // b 1 

2.2 比较运算

运算符 描述 实例
== 等于-比较对象是否相等 (a==b)返回False
!= 不等于-比较两个对象是否不想等 (a!=b)返回true
<> 不等于-比较两个对象是否不相等 (a<>b)返回True。这个运算符类似!=。
> 大于-返回x是否大于y (a>b)返回False
< 小于-返回x是否小于y (a< b)返回True
>= 大于等于-返回x是否大于等于y (a>=b)返回False
<= 小于等于-返回x是否小于等于y (a<=b)返回True
#代码演示:

>>> 3 == 3
True
>>> 3 == 5 False >>> "abc" == "abc" True >>> "abc" == "abcd" False >>> 3 > 5 False >>> 3 < 5 True >>> 3 >= 5 False >>> 3 <= 5 True 

2.3 赋值运算

运算符 描述 实例
= 简单的赋值运算符 c=a+b将a+b的运算结果赋值为0
+= 加法赋值运算符 c+=a等效于c=c+a
-= 减法赋值运算符 c-=a等效于c=c-a
*= 乘法赋值运算符 c*=a等效于c=c*a
/= 除法赋值运算符 c/=a等效于c=c/a
%= 取模赋值运算符 c%=a等效于c=c%a
**= 幂赋值运算符 c**=a等效于c=c**a
//= 取整除赋值运算符 c//=a等效于c=c//a
#代码演示:

>>> a = 5
>>> b = 4 >>> a += b #a = a + b >>> a 9 >>> a -= b #a = a - b >>> a 5 >>> a *= b #a = a * b >>> a 20 >>> a /= b #a = a / b >>> a 5.0 >>> a %= b #a = a % b >>> a 1.0 >>> a = 2 >>> a **= b #a = a ** b >>> a 16 >>> a //= b #a = a // b >>> a 4 

2.4 逻辑运算

运算符 描述 实例
and 布尔"与"-如果x为False,x and y返回False,否则它返回y的计算值 (a and b)返回True
or 布尔"或"-如果x是True,它返回True,否则它返回y的计算值 (a or b)返回True
not 布尔"非"-如果x为True,返回False,如果x为False,它返回True not(a and b)返回false
#代码演示:

if username == "yunjisuan" and userpassword == "666666" : print ("登陆成功!") #两个全都要为真,才为真,并且的意思 if username == "yunjisuan" or username == "benet" : pirnt ("用户名输入正确!") #只要有一个为真就为真,或者的意思 

2.5 成员运算

运算符 描述 实例
in 如果在指定的序列中找到值返回True,否则返回False x在y的序列中,如果x在y序列中返回True
not in 如果在指定的序列中没有找到值返回True,否则返回False。 x不在y序列中,如果x不在y序列中返回True
#代码演示:

>>> "a" in "abcd" #字符串 True >>> "e" in "abcd" False >>> "a" in ["a","b","c"] #列表 True >>> "e" in ["a","b","c"] False >>> "a" in {"a","b","c"} #集合 True >>> "e" in {"a","b","c"} False >>> "a" in {"a":1,"b":3,"c":5} #字典 True >>> 3 in {"a":1,"b":3,"c":5} False >>> 5 in ("a","b",5) #元组 True >>> 2 in ("a","b",5) False 

2.6 身份运算

运算符 描述 实例
is is是判断两个标识符是不是引用自一个对象 x is y,如果id(x)等于id(y),is返回结果1
is not is not是判断两个标识符是不是引用自不同对象 x is not y,如果id(x)不等于id(y)。is not返回结果1

面向对象才会用,这里不介绍

2.7 位运算

运算符 描述 实例
& 按位与运算符 (a&b)输出结果12,二进制解释:0000 1100
| 按位或运算符 (a|b)输出结果61,二进制解释:0011 1101
^ 按位异或运算符 (a^b)输出结果49,二进制解释:0011 0001
~ 按位取反运算符 (~a)输出结果-61,二进制解释:1100 0011,在一个有符号二进制数的补码形式
<< 左移动运算符 a<< 2输出结果240,二进制解释:1111 0000
>> 右移动运算符 a>>2输出结果15,二进制解释:0000 1111

运算演示:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:Mr.chen

a = 60      # 60 = 0011 1100
b = 13      # 13 = 0000 1101 c = 0 c = a & b # 12 = 0000 1100 print (c) c = a | b # 61 = 0011 1101 print (c) c = a ^ b # 49 = 0011 0001 相同为0,不同为1 print (c) c = ~a # -61 = 1100 0011 #运维班不讲 print (c) c = a << 2 # 240 = 1111 0000 #运维班不讲 print (c) c = a >> 2 # 15 = 0000 1111 #运维班不讲 print (c) 

三,Linux中的惊喜

请同学们在文件中运行以下代码,惊喜就会到来

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# author:Mr.chen
# 惊喜

for color in range(30,37) : for i in [0,1,4,5,0] : print ("\033[{}m 恭喜你,中奖了 !\033[{}m".format(color,i).center(70,"*"))

请同学们根据惊喜的结果和代码含义,自己反推这是为什么?

四,结语与阶段性作业

Python语法基础部分到此节就全部学习完了。和基础语法相关的所有常用用法和技巧,基本也就这么多了。在语法基础篇中,我着重训练同学的是作为开发应该具备的一种逻辑思路。有了思路,我们就需要将思路存储在硬盘上,而不再是内存里。因此接下来,我们要学习的就是文件基础篇

阶段性检测作业:

完成时间:间隔一次课

  • 根据上节回顾里的代码样例,完成用户入口的功能仿写
  • 无法完成的同学,Python语法基础阶段的学习不合格

猜你喜欢

转载自www.cnblogs.com/paul8339/p/9635917.html