python 全栈 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)# 设置\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())

三级菜单优化版

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

				
时间: 2024-11-08 23:23:16

python 全栈 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!的相关文章

Python全栈_Python基础_Day1

1.Python简介 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. python是一门解释型语言. 解释型语言:程序运行由解释器,一条一条读取解释执行. python程序执行的过程:源代码=====>>字节码文件======>>解释器======>>机器码. Python分为3.X版本和2.X版本,两个版本互不兼容. 2.Python安装 下载:https://www.

9Python全栈之路系列之Win字符编码深解

Win下的dos窗口输出中文 Python2.7默认字符编码是ascii格式,即使指定字符编码为UTF-8也未必能够输出中文,测试如下: #_*_coding:utf-8_*_ # 定义一个变量内容为中文,字符集为UTF-8 temp = "中文" # 输出变量temp的内容 print(temp) 用win下的dos窗口执行这个脚本,看看输出出来的是否为中文 C:\Users\anshe>python F:\Python_code\sublime\Day02\print.py

【Python全栈笔记】03 [模块二] 16-17 Oct Set 集合,三目运算

Set 集合 set - unordered collections of unique elements 创建一个set/一个空set # create a new set set1 = {1,2,3} print(type(set1)) # result => <class 'set> set2 = set() print(type(set2)) # create an empty set, result => <class 'set'> # as the obje

python 全栈 python基础(六)前期基础整理

计算机中,有且仅有CPU具有执行权限,能够执行指令的只有CPU! 人在应用程序上输入的文字或文本,叫做明文! 在屏幕上输入或是输出的是字符,计算机保存的是 有字符编码的 二进制数. 变量赋值规则:例如:a=1 先在内存中开辟一块空间,存放数1,内存上会有一个相对应的id号,然后变量a指向这块内存区域和id号,python编译器有垃圾清除的功能,若开辟的这块内存区域一段时间内不调用,数据就会被清除,为其他的数据腾空间. python2 容错率高,自作聪明的完成转码拼接. python3 将字节类型

python 全栈 python基础(二)变量 字符 列表

变量 容器 变量名 标记 数据的作用 字符编码 二进制位 = bit = 8bits1个二进制位是计算机里的最小表示单元 1个字节是计算机里最小的存储单位 8bits = 1Byte =1字节1024Bytes = 1KB =1 字节1024KB = 1MB = 100万字节 =100万字符 =1兆1024MB = 1GB = 一部高清电影短片,1080p 20分钟,1024GB = 1TB 1024TB = 1PB ASCII 256 每一个字符占8位GB2312 1980 67xxGBK1.

python 全栈 python基础 (四)运算 copy

字符串的格式化 在字符串中插入 %s ,作为占位符,后边儿再定义插入变量. 算术运算 % 取模   判断奇偶数 / 除法   有小于号 // 取整除  返回整数部分 逻辑运算 and or not 'str'.isdigit() 是判断一个字符串能否转换成数字 布尔运算 以下几种情况为假! []空列表 {}空字典 ()空元组,空集合 ''空字符串 0 位运算 == 二进制运算 列表的copy   浅copy与深copy的关系  用在内存占位的 id 理解! 字典 中的 fromkeys() 从序

python全栈开发基础【第二十五篇】死锁,递归锁,信号量,Event事件,线程Queue

一.死锁现象与递归锁 进程也是有死锁的 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用, 它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程, 如下就是死锁 #死锁现象 死锁------------------- from threading import Thread,Lock,RLock import time mutexA = Lock() mutexB = Lock() class

python 全栈 web基础(五)Jquery

jQuery是一个快速的,简洁的javaScript库(占空间特别小,但功能强大!兼容性极强!),这个库里封装了一些方法,使用户能更方便地处理HTMLdocuments.events.实现动画效果,并且方便地为网站提供AJAX交互. 一.jQuery对象 jQuery 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法. jquery的基础语法:$(selector).a

python 全栈 python基础 (十三)匿名函数 与 内置函数

一.匿名函数  1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是参数,可以有多个,用逗号隔开:冒号右边的为表达式,需要注意的是只能有一个表达式.由于lambda返回的是函数对象(构建的是一个函数对象),所以需要定义一个变量去接收.  3.注意点:lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值.lambda 函数不能包含命令,包含