• 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 ("
    ")
        print ("1,用户入口".center(50))
        print ("2,商家入口".center(50))
        print ("3,程序退出".center(50))
        print ("
    ")
        
        choice = input ("请选择:")
        if choice == "1" :
            while Tag : 
            #第二级用户购买功能选择菜单    
                os.system("clear")
                print ("《用户购买菜单》".center(50,'-'))
                print ("
    ")
                print ("1,商品购买".center(50))
                print ("2,购物车".center(50))
                print ("3,结帐退出".center(50))
                print ("
    ")
                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 ("
    ")
                print ("1,修改现有商品价格".center(50))
                print ("2,新增商品".center(50))
                print ("
    ")
                choice = input ("请选择(输入b返回上级菜单):")
                if choice == "b" or choice == "B" :
                    break
                elif choice == "1" :
                    while Tag_values :
                        #第三级价格修改商品类别选择菜单
                        os.system("clear")
                        print ("《商品类别选择清单》".center(50,"-"))
                        print ("
    ")
                        for type in goods_dict :
                            print (type.center(50))
                        print ("
    ")
                        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 ("
    ")
                                for item in goods_dict[type_input] :
                                    print (item.center(50))
                                print ("
    ")
                                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 ("
    ")
                        print ("
    ")
                        print ("
    ")
                        type_input = input ("请输入你想新增的商品类别:(输入b返回上级菜单)")
                        if type_input == "b" or type_input == "B" :
                            break
                        elif type_input in goods_dict :
                            while Tag_add :
                            #第四级商品新增名称输入功能菜单
                                print ("
    ")
                                print ("
    ")
                                print ("
    ")
                                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 ("33[{}m 恭喜你,中奖了 !33[{}m".format(color,i).center(70,"*"))

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

    四,结语与阶段性作业

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

    阶段性检测作业:

    完成时间:间隔一次课

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

    转自

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

  • 相关阅读:
    存储函数
    Laravel的请求声明周期
    哪只猴子可以当大王
    有多少苹果用来分赃
    SqlDataAdapter使用小结
    主键与外键
    SQL server 操作相关
    C# 窗体相关知识
    C#中winform DataGridView常用修改点
    maven 坐标获取方式
  • 原文地址:https://www.cnblogs.com/paul8339/p/9635917.html
Copyright © 2020-2023  润新知