lingedu 发表于 2020-6-13 16:51:59

有关函数什么时候需要参数的问题求助

def kacha():

    (sex,items) = each_line.split(':',1)
    if sex == '小甲鱼':
      boy.append(items)
    if sex == '小客服':
      girl.append(items)
      
def saves(boy,girl,count):
    boy_name = 'boy_'+str(count)+'.txt'
    girl_name = 'girl_'+str(count)+'.txt'
    boy_file = open((r"C:\Users\Administrator\Desktop/%s" %boy_name),'w')
    girl_file = open((r"C:\Users\Administrator\Desktop/%s" %girl_name),'w')
   
    boy_file.writelines(boy)
    girl_file.writelines(girl)
    boy_file.close()
    girl_file.close()
   
f = open(r"C:\Users\Administrator\Desktop/record.txt")
boy = []
girl = []
count = 0
for each_line in f:
    if each_line != '======':
      #进行字符串的分割操作
      #将分割的内容存入列表中
      kacha()
    else:
      count += 1
      #进行文件保存的操作
      saves(boy,girl,count)
      boy = []
      girl = []
count +=1
saves(boy,girl,count)


为什么我将kacha()这个定义的函数传入参数each_line会报错啊,这个函数不是要对each_line这个参数进行操作吗?

Twilight6 发表于 2020-6-13 16:57:25


应该是你的编码错误这样试试:
def kacha():
    (sex, items) = each_line.split(':', 1)
    if sex == '小甲鱼':
      boy.append(items)
    if sex == '小客服':
      girl.append(items)


def saves(boy, girl, count):
    boy_name = 'boy_' + str(count) + '.txt'
    girl_name = 'girl_' + str(count) + '.txt'
    boy_file = open((r"C:\Users\Administrator\Desktop/%s" % boy_name), 'w',encoding='utf-8')
    girl_file = open((r"C:\Users\Administrator\Desktop/%s" % girl_name), 'w',encoding='utf-8')

    boy_file.writelines(boy)
    girl_file.writelines(girl)
    boy_file.close()
    girl_file.close()


f = open(r"C:\Users\Administrator\Desktop/record.txt",encoding='utf-8')
boy = []
girl = []
count = 0
for each_line in f:
    if each_line != '======':
      # 进行字符串的分割操作
      # 将分割的内容存入列表中
      kacha()
    else:
      count += 1
      # 进行文件保存的操作
      saves(boy, girl, count)
      boy = []
      girl = []
count += 1
saves(boy, girl, count)

lingedu 发表于 2020-6-13 17:03:06

Twilight6 发表于 2020-6-13 16:57
应该是你的编码错误这样试试:

我想问问就是为什么kacha()这个函数不需要传入参数,而saves()则需要传入三个参数?saves()那三个参数不是都是全局变量吗,为啥还要传入参数?

Twilight6 发表于 2020-6-13 17:05:32

lingedu 发表于 2020-6-13 17:03
我想问问就是为什么kacha()这个函数不需要传入参数,而saves()则需要传入三个参数?saves()那三个参 ...

def kacha():

def saves(boy, girl, count):

函数是否传入参数是看你怎么定义函数的参数滴,Baby

Twilight6 发表于 2020-6-13 17:07:50

lingedu 发表于 2020-6-13 17:03
我想问问就是为什么kacha()这个函数不需要传入参数,而saves()则需要传入三个参数?saves()那三个参 ...



你自己没有定义参数,那么就可以不用填,如果你自己定义了函数的参数,而且没有设置默认值那么就一定要传入参数哈

lingedu 发表于 2020-6-13 17:13:28

Twilight6 发表于 2020-6-13 17:05
函数是否传入参数是看你怎么定义函数的参数滴,Baby

那我要定义def saves():而不是def saves(boy, girl, count):呢,就是我觉得boy, girl, count这三个都是全局变量啊,没有传入的必要啊?
就像是:
def adds():
    return x+y

def adds2(x,y):
    return x+y

x = 5
y = 6

adds()
adds2(x,y)

我定义函数有没有参数不是都行吗?这个程序我定义def saves():,之后调用saves(),为啥说我必须要传入3个参数啊?不理解啊,里面用到的参数都是全局变量啊,而adds()那个就不用传参{:10_266:}我太难了

Twilight6 发表于 2020-6-13 17:22:22

lingedu 发表于 2020-6-13 17:13
那我要定义def saves():而不是def saves(boy, girl, count):呢,就是我觉得boy, girl, count这三个都是全 ...

你定义的是 def saves(boy, girl, count) 而不是def saves() 所以 你一定要传入 3 个参数
页: [1]
查看完整版本: 有关函数什么时候需要参数的问题求助