zoukankan      html  css  js  c++  java
  • Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!

    三元运算 条件判断不能加冒号:

    a=3 b=5 c=a if a<b else b

    oct() 转成八进制的简写:
    16进制 标志:BH为后缀或是0x为前缀
    hex() 转成16进制

    元组
    跟列表是一样一样的!但它是只读列表,没有更改的权限!
    dir() 把传入的数据类型的,所有方法以列表的形式返回。
    作用:
    明确的表示 元组里存储的数据是不应该被修改的!!!
    list(tuple元组) 变成列表
    tuple(list列表) 变成元组

    集合 set
    linux ={"",""}
    python ={"",""}
    关系测试
    交集 两个都有
    print(linux.intersection(python)) #交集
    print(linux & python) #交集
    差集 两个都没有
    print(linux.difference(python))#差集
    print(linux - python)
    并集
    print(linux .unicon(python))#联合 并集
    print(linux | python) #联合
    对称差集 #把两个互相不在的全打印
    print(linux.symmetric_difference(python)) #对称 差集
    print(linux ^ python) #对称 差集

    两个集合合并 天然去重!把python合并到linux集合中
    linux.update(python)
    增加一个新的 linux.add("Alex")
    求差集并复制给linux集合 linux.difference(python)
    删除 linux.discard("alex") #删除,如果元素不再在,不会报错
    linux.remove("alex")# 删除,如果元素不存在,会报错
    随机删 linux.pop() #随机删除

    linux.issubset(python) #子集 判断是否是子集
    linux.issuperset() #超集,父集 判断可用<,>进行

    string 字符串操作
    name ="alex,Alex"
    name.capitalize() #首字母大写
    name.casefold() #大写变小写
    name.center(50,"-") #居中,两边空格用-填充
    name.count('e',3,7) #统计
    name.endswith("li") #判断 以什么结尾
    name.expandtabs(3)# 设置 的长度
    name.find("e") #返回找到的第一个值的索引,找不到就返回-1
    name.format() #格式化输出

    name="my name is {0},i am {1} years old!"
    name.format("alex",22) print查看输出

    name="my name is {name},i am {age} years old!"
    name.format(name="alex",age=22) print查看输出
    name.format_map('name':"alex",'age':22) 也可以传一个字典

    name.isalnum() #a-z,A-Z,0-9 判断是否是数字
    name.isdecimal() #判断是否是一个 正整数
    name.isalpha() # 判断是否是字母(字符串必须全是)
    name.isidentifier() #identifier 关键字 判断是否是个合法的关键字,是不是合法的变量名
    name.islower() #是否是小写
    name.isupper() #是否是大写
    name.isspace() #是否是空格
    name.istitle() #是不是英文标题 (首字母必须大写)

    join #把列表拼接成字符串

    print("!!!".join(["alex","wang"]))
    name.ljust(50,'-') #左对齐
    name.rjust(50,'-') #右对齐
    name.rfind('s') #从右往左找,返回索引值
    name.swapcase() #大小写互换
    name.translate() #翻译
    strip() 方法用于移除字符串头尾指定的字符(默认为空格)
    split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串

    IN = ‘abcde’
    OUT = '12345'
    trans_table = str.maketrans(IN,OUT) #制作对照表
    print(name2.translate(trans_table))# 字符翻译

    name.replace(‘name’,'NAME',次数) #替换

    数据类型
    str #它只是一种人类可读的抽象的表示形式
    int
    float
    bool
    list
    tuple
    dict
    set
    bytes 字节类型(二进制类型) 就是一个8bits的字节

    所有的字符要存到内存里,硬盘里,都是bytes格式
    在py2中,看到的字符串,就是bytes str==bytes

    py3中,所有字符在 内存中都是unicode
    解释器读取文件的默认编码是utf-8
    str == unicode bytes==bytes

    字符编码
    decode() 解码
    encode() 编码

    所有格式的解码,都先解码成unicode格式,再编译。

    文件操作
    f = open("text.txt",encoding="utf-8") #默认以utf-8解释
    print(f.read())


    三级菜单优化版

    menu = {
    '北京':{
    '海淀':{
    '五道口':{
    'soho':{},
    '网易':{},
    'google':{}
    },
    '中关村':{
    '爱奇艺':{},
    '汽车之家':{},
    'youku':{},
    },
    '上地':{
    '百度':{},
    },
    },
    '昌平':{
    '沙河':{
    '老男孩':{},
    '北航':{},
    },
    '天通苑':{},
    '回龙观':{},
    },
    '朝阳':{
    '大悦城':{
    'GOP':{},
    '电影院':{},
    },
    "望京":{},
    "团结湖":{},
    },
    '东城':{},
    },
    '上海':{
    '闵行':{
    "人民广场":{
    '炸鸡店':{}
    }
    },
    '闸北':{
    '火车战':{
    '携程':{}
    }
    },
    '浦东':{},
    },
    '山东':{
    "德州":{},
    "青岛":{},
    },
    }
    last_layers = [menu] #上一层
    current_layer = menu #当前层

    while True:
    for key in current_layer:
    print(key)
    choice = input(">>:").strip()
    if len(choice) == 0:continue
    if choice in current_layer: #进入下一层
    last_layers.append(current_layer) #当前层添加到 上一层的列表中
    current_layer = current_layer[choice] #再循环进入下一层
    if choice == "b": #输入 b 的时候
    if last_layers: #判断上一层列表不为空
    current_layer = last_layers[-1] #取到上一层,赋值给current_layer
    last_layers.pop() #删除上一层列表中的最后一个
    if choice == "q": #输入 q 直接退出
    break

    
    
  • 相关阅读:
    设置IME控制输入框只能输入英文
    URLStream
    EBS前台界面值找后台对应的字段方法
    EBS调试
    Oracle EBS 如何定义请求
    EBS FORM(10g)开发步骤
    BOM模块常用表结构
    小示例分清表接关系
    UOM物料单位转换(同类型才能转换)
    ORECLE EBS 如何调试
  • 原文地址:https://www.cnblogs.com/zh605929205/p/6659129.html
Copyright © 2011-2022 走看看