zoukankan      html  css  js  c++  java
  • 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语法基础阶段的学习不合格
  • 相关阅读:
    BZOJ2821 作诗(Poetize) 【分块】
    BZOJ2724 蒲公英 【分块】
    Codeforces 17E Palisection 【Manacher】
    BZOJ2565 最长双回文串 【Manacher】
    Codeforces 25E Test 【Hash】
    CODEVS3013 单词背诵 【Hash】【MAP】
    HDU2825 Wireless Password 【AC自动机】【状压DP】
    HDU2896 病毒侵袭 【AC自动机】
    HDU3065 病毒侵袭持续中【AC自动机】
    HDU2222 Keywords Search 【AC自动机】
  • 原文地址:https://www.cnblogs.com/chensiqiqi/p/9163053.html
Copyright © 2011-2022 走看看