gpt4 book ai didi

python - 多个参数

转载 作者:行者123 更新时间:2023-12-01 09:04:41 25 4
gpt4 key购买 nike

我有一个带有序列号的文本文档,我想创建一个程序,在其中运行一个函数,告诉您某个序列号在文本文档中出现了多少次。我希望参数不受限制,因为我可以要求 3 个不同的序列号或仅 1 个。

list of serial numbers:
pmos_4e
nmos_4e
pmos_4t
pmos_4f
nmos_4t
nmos_4f
pmos_4e
nmos_4e
pmos_4t
pmos_4f
nmos_4t
nmos_4f
pmos_4e
nmos_4e
pmos_4t
pmos_4f
nmos_4t
nmos_4f
pmos_4e
nmos_4e
pmos_4t
pmos_4f
nmos_4t
nmos_4f
pmos_4e
nmos_4e
pmos_4e
nmos_4e
pmos_4t
pmos_4f
nmos_4t
nmos_4f
pmos_4t
pmos_4f
nmos_4t
nmos_4f

current code:
def find_serial(*serial):

f = open('C:/Users/joann/Desktop/pmos.txt', 'r')
for z in range(len(serial)):


x = 0
lines = f.readlines()
for i in lines:
if (serial[z-1] in i):
x += 1
print(x)


f.close()

当我运行它时,我得到第一个值显示的次数,但其余值显示为 0。

>>> find_serial('pmos_4e', 'nmos_4e', 'pmos_4t', 'pmos_4f')
6
0
0
0

最佳答案

Solution_Update

filename = "serials.txt"

def find_serial(*serial):

serial_1, serial_2, serial_3, serial_4 = serial
serials = [serial_1, serial_2, serial_3, serial_4]
f = open('serials.txt', 'r')
contents = f.read().split()

for i in serials:
x = 0
for j in contents:
if i == j:
x +=1
print(f"{i} count: {x}")

find_serial('pmos_4e', 'nmos_4e', 'pmos_4t', 'pmos_4f')

相同的解决方案,但我注意到您想一次将所有参数传递给函数,因此我重写了它,以便您可以按照您想要的原始方式执行 find_serial 函数!

解决方案_原始

filename = "serials.txt"

def find_serial(serial):
f = open('serials.txt', 'r')
contents = f.read().split()
x = 0
for i in contents:
if i == serial:
x +=1
print(f"{serial} count: {x}")

serials = ['pmos_4e', 'nmos_4e', 'pmos_4t', 'pmos_4f']
for i in serials:
find_serial(i)

使用f.read().split()将为我们提供一个包含文本中每个单词的列表,并且由于所有这些序列都是一个单词,因此这是一个使用它的好机会。然后我们可以在内容中使用for i,然后将i与我们的serial进行比较,并增加x计数。

输出

(xenial)vash@localhost:~/python$ python3.7 helpin.py 
pmos_4e count: 6
nmos_4e count: 6
pmos_4t count: 6
pmos_4f count: 6

关于python - 多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52154291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com