
正文
python中菜单函数 python中的菜单
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
关于python菜单的问题,小白求教!
运行正常python中菜单函数,但python中菜单函数我想修改下代码让每个菜单项有不同
相关问答
Q1: Python中冷门但非常好用的内置函数
Python中有许多内置函数,不像print、len那么广为人知,但它们的功能却异常强大,用好python中菜单函数了可以大大提高代码效率python中菜单函数,同时提升代码的简洁度,增强可阅读性
Counter
collections在python官方文档中的解释是High-performance container datatypes,直接的中文翻译解释高性能容量数据类型。这个模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。在python3.10.1中它总共包含以下几种数据类型python中菜单函数:
容器名简介
namedtuple() 创建命名元组子类的工厂函数
deque 类似列表(list)的容器,实现了在两端快速添加(append)和弹出(pop)
ChainMap 类似字典(dict)的容器类,将多个映射集合到一个视图里面
Counter 字典的子类,提供了可哈希对象的计数功能
OrderedDict 字典的子类,保存了他们被添加的顺序
defaultdict 字典的子类,提供了一个工厂函数,为字典查询提供一个默认值
UserDict 封装了字典对象,简化了字典子类化
UserList 封装了列表对象,简化了列表子类化
UserString 封装了字符串对象,简化了字符串子类化
其中Counter中文意思是计数器,也就是python中菜单函数我们常用于统计的一种数据类型,在使用Counter之后可以让我们的代码更加简单易读。Counter类继承dict类,所以它能使用dict类里面的方法
举例
#统计词频
fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']
result = {}
for fruit in fruits:
if not result.get(fruit):
result[fruit] = 1
else:
result[fruit] += 1
print(result)
#{'apple': 2, 'peach': 3, 'lemon': 1}下面我们看用Counter怎么实现:
from collections import Counter
fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']
c = Counter(fruits)
print(dict(c))
#{'apple': 2, 'peach': 3, 'lemon': 1}显然代码更加简单了,也更容易阅读和维护了。
elements()
返回一个迭代器,其中每个元素将重复出现计数值所指定次。元素会按首次出现的顺序返回。如果一个元素的计数值小于1,elements()将会忽略它。
c = Counter(a=4, b=2, c=0, d=-2)
sorted(c.elements())
['a', 'a', 'a', 'a', 'b', 'b']most_common([n])
返回一个列表,其中包含n个最常见的元素及出现次数,按常见程度由高到低排序。如果n被省略或为None,most_common()将返回计数器中的所有元素。计数值相等的元素按首次出现的顺序排序:
Counter('abracadabra').most_common(3)
[('a', 5), ('b', 2), ('r', 2)]这两个方法是Counter中最常用的方法,其他方法可以参考 python3.10.1官方文档
实战
Leetcode 1002.查找共用字符
给你一个字符串数组words,请你找出所有在words的每个字符串中都出现的共用字符(包括重复字符),并以数组形式返回。你可以按任意顺序返回答案。
输入:words = ["bella", "label", "roller"]
输出:["e", "l", "l"]
输入:words = ["cool", "lock", "cook"]
输出:["c", "o"]看到统计字符,典型的可以用Counter完美解决。这道题是找出字符串列表里面每个元素都包含的字符,首先可以用Counter计算出每个元素每个字符出现的次数,依次取交集最后得出所有元素共同存在的字符,然后利用elements输出共用字符出现的次数
class Solution:
def commonChars(self, words: List[str]) - List[str]:
from collections import Counter
ans = Counter(words[0])
for i in words[1:]:
ans = Counter(i)
return list(ans.elements())提交一下,发现83个测试用例耗时48ms,速度还是不错的
sorted
在处理数据过程中,我们经常会用到排序操作,比如将列表、字典、元组里面的元素正/倒排序。这时候就需要用到sorted(),它可以对任何可迭代对象进行排序,并返回列表
对列表升序操作:
a = sorted([2, 4, 3, 7, 1, 9])
print(a)
# 输出:[1, 2, 3, 4, 7, 9]对元组倒序操作:
sorted((4,1,9,6),reverse=True)
print(a)
# 输出:[9, 6, 4, 1]使用参数:key,根据自定义规则,按字符串长度来排序:
fruits = ['apple', 'watermelon', 'pear', 'banana']
a = sorted(fruits, key = lambda x : len(x))
print(a)
# 输出:['pear', 'apple', 'banana', 'watermelon']all
all() 函数用于判断给定的可迭代参数iterable中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。元素除了是 0、空、None、False外都算True。注意:空元组、空列表返回值为True。
all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0
True
all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素
False
all([0, 1,2, 3]) # 列表list,存在一个为0的元素
False
all(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0
True
all(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素
False
all((0, 1, 2, 3)) # 元组tuple,存在一个为0的元素
False
all([]) # 空列表
True
all(()) # 空元组
Trueany函数正好和all函数相反:判断一个tuple或者list是否全为空,0,False。如果全为空,0,False,则返回False;如果不全为空,则返回True。
F-strings
在python3.6.2版本中,PEP 498提出一种新型字符串格式化机制,被称为 “字符串插值” 或者更常见的一种称呼是F-strings,F-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化:
s1='Hello'
s2='World'
print(f'{s1} {s2}!')
# Hello World!在F-strings中我们也可以执行函数:
def power(x):
return x*x
x=4
print(f'{x} * {x} = {power(x)}')
# 4 * 4 = 16而且F-strings的运行速度很快,比传统的%-string和str.format()这两种格式化方法都快得多,书写起来也更加简单。
本文主要讲解了python几种冷门但好用的函数,更多内容以后会陆陆续续更新~
Q2: python菜单程序
你不是用qt开发界面的也不是用tkinter开发
只是原始的代码的话
最简单的方法是用
if
else if
else if
else
这样的,在python里面貌似没有类似C语言的swtich
所以还是用最基本的方法吧
这个对于有一点的编程基础的同学来的话是相当简单的
python以她代码精简精悍闻名,所以越到后面你会体会到的
当然还有其python中菜单函数他方法实现你说的,对于初学者的你我建议你还是把if学好,基本的判断在任何语言中都是基础的
/************************电泡泡**************************/
ps:有疑问请直接hi我,或者email heihei36@qq.com,对python中菜单函数了我可以推荐一些python的教材和视频给你
望采纳..
Q3: 如何构建命令行下的Python菜单选项?
import time
#from 调用VBS语音播读 import h_读
def h_读(a):
return a
wt1 = input(h_读('您好,欢迎古灵阁,请问您需要帮助吗?1需要or2不需要?'))
if wt1 == '1' or wt1 == '需要':
wt2 = input(h_读('请问您需要什么帮助呢?1存取款,2货币兑换,3咨询'))
if wt2 == '1' or wt2 == '存取款':
print(h_读('小精灵推荐你去存取款窗口;'))
elif wt2 == '2' or wt2 == '货币兑换':
print(h_读('金加隆和人民币的兑换率为1:51.3,即一金加隆=51.3人民币,桥等于10亿'))
time.sleep(1)
wt3 = input(h_读('请问您需要兑换多少金加隆呢?'))
time.sleep(1)
if wt3 == '桥':
print(h_读('恭喜你中奖了。'))
try:
wt33 = float(wt3)
print(h_读('好的,我知道了,您需要兑换' + wt3 + '金加隆。'))
time.sleep(1)
print(h_读('正在计算'))
time.sleep(1)
wt34 = wt33 * 51.3
wt35 = str(wt34)
print(h_读('那么,您需要付给我' + wt35 + '人民币'))
except:
if wt3 != '桥':
print(h_读('你输入的不是数字。把你关起来呀'))
else:
print(h_读('小精灵推荐你去咨询窗口'))
else:
print(h_读('好的,再见。'))
input(h_读("再见"))
这个实例你运行一下就明白了
Q4: python中brandlist函数作用
list()函数是python的内置函数。
它可以将任何可迭代数据转换为列表类型python中菜单函数,并返回转换后的列表。当参数为空时python中菜单函数,list函数可以创建一个空列表。
它是一个计算机专业术语,在编程语言中List是类库中的一个类,可以简单视之双向连结串行,以线性列的方式管理物件集合。list也是操作系统的一个命令名称。list的特色是在集合的任何位置增加或者删除元素都很快,但是不支持随机存取。list是类库提供的众多容器(container)之一,除此之外还有vector,set,map等等,list以模仿方式实现(即泛型),可以处理任意型别的变量,包括使用者自定义的资料形态。
Q5: 什么是表示函数的菜单列表
我们可以说Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型。
mix = [1,"张三",3.14, [1,"李四", 3]]
#如果想得到列表中某个元素,只需要写出位置即可。
mix[0] = 1
mix[1] = "张三"
1. 向列表增加元素有哪些方法?append() -- 增加一个元素至列表末尾(如果是两个元素就会报错),这个元素可以是任何形式。
extend() -- 扩展一个元素到列表末尾(如果是两个元素就会报错),扩展的意思是其可以将2个列表并列。
insert(n,元素) -- 在数列的第n位添加元素
member = [1,2,3]
member.append([4,5])
# 将数列[4,5]做为一个元素,添加进member数列 member = [1,2,3,[4,5,]]
print(member)
member.extend([6,7])
#将数列[4,5]中的每个元素单做单独元素,添加进member数列member = [1,2,3,[4,5],7,8]
print(member)
member.insert(0,"张三")
# 在member第0位添加元素0 member = ["张三",1,2,3,[4,5],7,8]
print(member)
2. 分片应用
当需要获取列表中的一个子部分,就需要使用分片方法,语法为[start:stop:step]start: 开始的位置(默认其实位置)
stop: 结束的位置,不会将该位置的数字列入该新列表(默认末尾+1)
step: 间隔,即多少间隔,取一个值,(默认为1)Remark:
1. 步长不能为0,要不就走不动了
2. 步长可以是负数,改变方向(从尾部开始向左走)
list1 = [0,1,2,3,4,5,6,7,8,9]
list2 = list1[2:6]
# List2 选取list1中,从第二个位置开始,到第六个位置结束的子数列,list2 = [2,3,4,5]
list3 = list1[:]
# List3 选取list1中,从第0个位置开始,到第个9+1位置结束的子数列,list3 = [0,1,2,3,4,5,6,7,8,9]
List4 = list1[::2]
# List4 选取list1中,从第0个位置开始,到第个9+1位置结束,每隔2个位置取一个的子数列
#list4 = [0,2,4,6,8]
# 如果我设置start和stop会负数呢,List 5会是多少?
List5 = list1[-1:-5]
Python 的列表很聪明,支持负数索引,如图:正常索引是从左到右索引,负数索引是从右到左。 所以List5 = [9,8,7,6]
分片完成列表的拷贝 list2 = list1[:],那事实上可不可以直接写成 list2 = list1 更加简洁呢?
list1 = [1, 3, 2, 9, 7, 8]
list2 = list1[:]
print(list2)
# 得出的结果是[1, 3, 2, 9, 7, 8]
list3 = list1
print(list3)
# 得出的结果是[1, 3, 2, 9, 7, 8]
# 看上去貌似一样的,对吧?但事实上呢?我们利用列表的一个小伙伴做下修改
list1.sort()
# sort()是列表的内置排序函数(默认从小到大)
print(list1)
#得到的结果是[1, 2, 3, 7, 8, 9],list1已经从小到大排了个序
print(list2)
#得到的结果[1, 3, 2, 9, 7, 8]
print(list3)
#得到的结果是[1, 2, 3, 7, 8, 9]
#真正的汉奸、墙头草是list3,Ta跟着list1改变了,这是为什么呢?
Python的变量就像一个标签,就一个名字而已,贴哪是哪,指哪打哪,如下图。
这下大家应该明白了吧,在为一个固定的东西指定另一个名字的做法,只是向同一个东西增加一个新的标签而已。
猜猜下面print(new)是什么结果:
old = [1,2,3,4]
new = old
old= [7]
print(new) # 会打印出什么呢?
Remark:
1.列表的拷贝也可以用列表拷贝函数copy()
2. 如果要对列表进行排序,用sort(),默认从小到大,如果想得出从大到小的排序,可以加入reverse()(反转函数)
list1 = [1,2,5,4,3,0]
list2 = list1.copy()
print(list2)
#会得到[1,2,5,4,3,0]
list3 = list1.sort()
print(list3)
#会得到[0,1,2,3,4,5]
list4 =list3.reverse()
print(list4)
#会得到[5,4,3,2,1,0]
#简单的写法
list 5 = list.sort(reverse = true)
print(list5)
#会得到[5,4,3,2,1,0]
3. 删除列表的元素有哪些方法?remove(元素) -- 删除列表中的某一个元素。
del 列表[] -- 删除列表中某个位置元素或者某段位置元素,符号是[]非().
pop(n) -- 删除列表中的n位置的元素,不填默认最后一个元素,并赋值
list1 = [0,1,2,3,4,5]
list1.remove(1)
print(list1)
# 得到结果[0,2,3,4,5]
list2 = list1.remove(0)
print(list2) # 猜猜得到什么
print(list1) # 得到结果[2,3,4,5]
number = [0,12,24,36,48]
del number[1]
print(number)
# 得到结果[0,24,36,48]
del number[:2]
print(number)
# 得到结果[36,48]
del number[:] #清空表格,和number.clear()效果一样
print(number)
# 得到结果[]
member = ["张三","李四","王五","赵二"]
a = member.pop()
print(a) # 猜猜得到什么
print(member) # 得到结果["张三","李四","王五"]
4.其他请问 list1[0] 和 list1[0:1] 一样吗?
不一样,list1[0] 返回第0个元素的值,list1[0:1] 返回一个只含有第0个元素的列表。
List1 = [0,1,2,["today","tomorrow"],4]
list1[0] = 0 #返回第0个元素的值
list1[0:1] = [0] #返回一个只含有第0个元素的列表
#如何将"yesterday"插入到today 前面?
list1[3].insert(0,"yesterday")
print(list1)
#得到结果应该是 [0,1,2,["yesterday","today","tomorrow"],4]
# 如何将列表中元素替换
#将["yesterday","today","tomorrow"] 替换成3
list1[3] = 3
print(list1)
#结果应该是[0,1,2,3,4]
#如果将2,3,4换成3,4,5
list1[2:] = [3,4,5]
print(list1)
#结果应该是[0,1,3,4,5]如果你每次想从列表的末尾取出一个元素,并将这个元素插入到列表的最前边,你会怎么做?
list1.insert(0, list1.pop())列表中内置函数(没介绍的)count(元素) -- 计算元素在列表中有多少个
index(元素,start,stop) -- 查找该元素在start位置到stop位置的第几个(start 和 stop不填默认为全部元素),如果含有多个元素,只返回第一个值。
list1 = [0,1,2]
list2 = [3,4]
list3 = list1 + list2
print(list3) # 结果为 [0,1,2,3,4]
list4 = list2 * 4
print(list4) # 结果为 [3,4,3,4,3,4,3,4]
print(list4.count(3)) # 结果为 4
print(list4.index(4)) # 结果为 1列表列表推导式或列表解析
列表推导式(List comprehensions)也叫列表解析,灵感取自函数式编程语言 Haskell。Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:
number1 = [ i*i for i in range(10) ]
print(number1) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
#其实上面上面这个语法相当于
list1 = []
for x in range(10):
list1.append(x**2)
print(list1)
关于python中菜单函数和python中的菜单的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







