lingedu 发表于 2020-6-13 17:21:24

关于文件第29讲的问题,求解答

def kacha():

    (sex,items) = each_line.split(':',1)
    if sex == '小甲鱼':
      boy.append(items)
    if sex == '小客服':
      girl.append(items)
      
def saves():
    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 +=1
saves()

老八秘制 发表于 2020-6-13 17:22:30

??????问题呢?????

lingedu 发表于 2020-6-13 17:24:57

老八秘制 发表于 2020-6-13 17:22
??????问题呢?????

就是那个def saves(),为什么我定义成def saves(each_line)就会报错啊,这个函数里边不是需要一个each_line的参数吗?

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

lingedu 发表于 2020-6-13 17:24
就是那个def saves(),为什么我定义成def saves(each_line)就会报错啊,这个函数里边不是需要一个each_li ...

你可能理解错了参数的含义

比如说 你定义一个函数里面的参数为a、b、c

但是参数 a、b、c 和 外部的 a、b、c 变量没有任何关系


就拿你上个帖子的例子来说,你的定义:
def adds2(x,y):
    return x+y

x = 5
y = 6

def adds2(x,y)这个地方的 x 、y 和外面的 x、y 没有关系
除非你:
adds2(x,y)
就是等于把外面的 x 赋值给 函数参数 x即是 : adds2(x=x,y=y)

你可以直接填adds2(x,y) 的原因是 Python 已经默认帮你等于好了

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

本帖最后由 Twilight6 于 2020-6-13 17:39 编辑

lingedu 发表于 2020-6-13 17:24
就是那个def saves(),为什么我定义成def saves(each_line)就会报错啊,这个函数里边不是需要一个each_li ...


x = 5
y = 6
def adds2(x,y):
    return x+y
adds2()

这样就会报错,为什么呢,因为你没有填入 adds2 的x、y参数


你这样传入和定义并没有用呀,因为你都没有使用到传入的参数,你可以试着运行下下面的代码:

def kacha():
    (sex, items) = each_line.split(':', 1)
    if sex == '小甲鱼':
      boy.append(items)
    if sex == '小客服':
      girl.append(items)


def saves(each_line):
    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(each_line)
      boy = []
      girl = []
count += 1
saves(each_line)

Stubborn 发表于 2020-6-13 19:48:28

Twilight6 发表于 2020-6-13 17:31
这样就会报错,为什么呢,因为你没有填入 adds2 的x、y参数




高质量的回帖,不像我,就和水贴一样,这么长的代码,我肯定回答不上{:10_303:}

Twilight6 发表于 2020-6-13 19:52:44

Stubborn 发表于 2020-6-13 19:48
高质量的回帖,不像我,就和水贴一样,这么长的代码,我肯定回答不上

{:10_306:} 一口盐汽水喷你......

Stubborn 发表于 2020-6-13 19:59:41

Twilight6 发表于 2020-6-13 19:52
一口盐汽水喷你......

美,,,美嘉,是你吗?我是益达呀

Twilight6 发表于 2020-6-13 20:02:41

Stubborn 发表于 2020-6-13 19:59
美,,,美嘉,是你吗?我是益达呀

{:10_277:}口区
页: [1]
查看完整版本: 关于文件第29讲的问题,求解答