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

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)# 设置\t的长度
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())

三级菜单优化版

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

  1.  

Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!的更多相关文章

  1. Py修行路 python基础(二)变量 字符 列表

    变量 容器 变量名 标记 数据的作用 字符编码 二进制位 = bit1个二进制位是计算机里的最小表示单元 1个字节是计算机里最小的存储单位 8bits = 1Byte =1字节1024Bytes = ...

  2. Py修行路 python基础(六)前期基础整理

    计算机中,有且仅有CPU具有执行权限,能够执行指令的只有CPU! 人在应用程序上输入的文字或文本,叫做明文! 在屏幕上输入或是输出的是字符,计算机保存的是 有字符编码的 二进制数. 变量赋值规则:例如 ...

  3. Py修行路 python基础 (二十五)线程与进程

    操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定 ...

  4. Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  5. Py修行路 python基础 (四)运算 copy

    字符串的格式化 在字符串中插入 %s ,作为占位符,后边儿再定义插入变量. 算术运算 % 取模   判断奇偶数 / 除法   有小于号 // 取整除  返回整数部分 逻辑运算 and or not ' ...

  6. Py修行路 python基础 (十三)匿名函数 与 内置函数

    一.匿名函数  1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是 ...

  7. Py修行路 python基础 (十四)递归 及 面向对象初识及编程思想

    一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递归策略时,必须有一个明确的递归结束条件 ...

  8. Py修行路 python基础 (十九)面向对象进阶(下)

    item系列 __slots__方法 __next__ 和 __iter__实现迭代器  析构函数 上下文管理协议 元类一.item系列 把对象操作属性模拟成字典的格式.  例如:对象名['key'] ...

  9. Py修行路 python基础 (二十)模块 time模块,random模块,hashlib模块,OS及sys模块

    一.前提介绍: 可以开辟作用域的只有类,函数,和模块            for循环 if,else: 不能开辟自己的作用域 避免程序复用和重复调用,将这些写到一个.py文件中,做成一个模块,进行调 ...

随机推荐

  1. deep learning新征程(二)

    deep learning新征程(二) zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan  2016-4-5   声明 1)该Dee ...

  2. jsp和servlet学习总结

    一.Jsp与servlet的区别: jsp是java代码嵌入html中,用java代码控制来html. Servlet完全是JAVA程序代码构成,用来流程控制和事务处理 jsp更擅长表现于页面显示,s ...

  3. 【爬虫】beautiful soup笔记(待填坑)

    Beautiful Soup是一个第三方的网页解析的模块.其遵循的接口为Document Tree,将网页解析成为一个树形结构. 其使用步骤如下: 1.创建对象:根据网页的文档字符串 2.搜索节点:名 ...

  4. pg_rewind 源端时间线发生改变 同步失败

    master-standby情况下,发生如下行为: 1.master停掉后,standby做为新的master(可能存在部分事物没有同步到standby中). 2.新master运行过程中出错,进行恢 ...

  5. H264提供了哪些帧内预测?

    H.264/AVC 提供了四种帧内预测方式:4x4 亮度块的帧内预测(Intra_4x4).16x16 亮度块的帧内预测(Intra_16x16).8x8 色度块的帧内预测(Intra_chroma) ...

  6. ARM 内核SP,LR,PC寄存器

    深入理解ARM的这三个寄存器,对编程以及操作系统的移植都有很大的裨益. 1.堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式.非异常模 ...

  7. HTTP返回结果状态码小结

    HTTP 状态码负责表示客户端 HTTP 请求的返回结果.标记服务器端的处理是否正常.通知出现的错误等工作. 一.状态码的类别 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果.借助状态 ...

  8. iOS 单元测试和UI测试教程

    原文:iOS Unit Testing and UI Testing Tutorial 作者:Audrey Tam 译者:kmyhy 编写测试不是为了追求刺激,测试是为了避免你崭新的 App 变成了充 ...

  9. 自定义控件之TagGroup

    转载请注明出处:http://blog.csdn.net/crazy1235/article/details/74907150 标签瀑布流布局! 实现方式有很多种. 继承LinearLayout 继承 ...

  10. 演示使用Metasploit入侵Android

    文本演示怎么使用Kali Linux入侵Android手机. Kali Linux IP地址:192.168.0.112:接收连接的端口:443. 同一局域网内android手机一部(android ...