鱼C论坛

 找回密码
 立即注册
查看: 2567|回复: 26

[已解决]有偿请教大佬,如何利用python处理excel,有偿请教!

[复制链接]
发表于 2020-3-9 22:47:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

各位大佬好,请问如何利用python写一个函数,实现输入“起始坐标”,‘间隔‘’,’‘’列数‘’,‘’行数’’等信息,自动生成左边X Y两列数据的功能?下图为X Y的示意图。
如果能解决问题,愿意私聊加微信或者支付宝付费10元人民币。跪谢!

                               
登录/注册后可看大图


  INDEX  X  Y    起始坐标X  起始坐标X
  1  1  1    1  1
  2  2  1      
  3  3  1    同行中X的间隔  不同行间的X间隔
  4  4  1    1  2
  5  5  1      
  6  6  1    行数  列数1
  7  7  1    4  10
  8  8  1      
  9  9  1      
  10  10  1      
  11  3  4      
  12  4  4      
  13  5  4      
  14  6  4      
  15  7  4      
  16  8  4      
  17  9  4      
  18  10  4      
  19  11  4      
  20  12  4      
  21  1  7      
  22  2  7      
  23  3  7      
  24  4  7      
  25  5  7      
  26  6  7      
  27  7  7      
  28  8  7      
  29  9  7      
  30  10  7      
  31  3  10      
  32  4  10      
  33  5  10      
  34  6  10      
  35  7  10      
  36  8  10      
  37  9  10      
  38  10  10      
  39  11  10      
  40  12  10      
最佳答案
2020-3-14 00:52:36
x_list=[0,3]
count=0
j=0
x = x_list[0]
y = 1
print("以下为x,y的数据:")
while j<4:
    if x == 0:
        for i in range(10):
            x +=1
            print(x,y)
        j += 1
        x = x_list[1]
        y += 2
    elif x == 3:
        for i in range(10):
            print(x,y)
            x+=1
        j += 1
        x = x_list[0]
        y += 2

    

如果是想要x,y的数据一起的话就是这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-9 22:50:37 | 显示全部楼层
数据有点乱码,图片也没有显示,不知道如何上传附件,愿意帮忙的鱼油请留言,我可以把数据发到你邮箱,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-9 23:25:54 | 显示全部楼层
本帖最后由 XiaoPaiShen 于 2020-3-9 23:32 编辑
wqx285314590 发表于 2020-3-9 22:50
数据有点乱码,图片也没有显示,不知道如何上传附件,愿意帮忙的鱼油请留言,我可以把数据发到你邮箱,谢谢 ...


用鱼币悬赏,不是更简单吗?
另外,你的需求实在看不明白。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-9 23:50:02 | 显示全部楼层
可以发数据到我qq邮箱:569673855


你给的例子是不是有问题,行数4,列数10,例子实际行数超过10,列数只有3;
数据有点乱,有示意图就更好了;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 09:23:11 | 显示全部楼层
https://imgchr.com/
这个网站上传图片

                               
登录/注册后可看大图

这样上传到鱼C:

                               
登录/注册后可看大图

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-10 11:11:55 | 显示全部楼层
看不懂题目,可以详细说一说吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 17:26:19 | 显示全部楼层
本帖最后由 wqx285314590 于 2020-3-13 17:46 编辑
XiaoPaiShen 发表于 2020-3-9 23:25
用鱼币悬赏,不是更简单吗?
另外,你的需求实在看不明白。


不知道如何用鱼币悬赏。。。

我自己写了一部分,问题可以简化成:
1.如何让while 内的循环体(line5到13)执行指定次数,我想的是引入j,j+=1,j<3,那么while循环可以执行3次,但是出来的结果不是我想要的。或者j<30,也不对
x=[0,3]
count=0
j=0
while j<3:
      if count<10:
          x[0]+=1
          print(x[0])
          count+=1
      else:
          if count<20:
              x[1]+=1
              print(x[1])
              count+=1
2.y想要输出的是连续10个1,10个3,10个5....以此类推。我写的只能实现10个1,不能循环,不能递增,请指教。
y=1
count=0
times=0
while times<4:
      times-=1
      while count<10:
          count+=1
          print(y)
      y+=2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 17:35:10 | 显示全部楼层
派生小生 发表于 2020-3-9 23:50
可以发数据到我qq邮箱:569673855

我自己写了一部分,问题可以简化成:
1.如何让while 内的循环体(line5到13)执行指定次数,我想的是引入j,j+=1,j<3,那么while循环可以执行3次,但是出来的结果不是我想要的。或者j<30,也不对
x=[0,3]
count=0
j=0
while j<3:
    if count<10:
        x[0]+=1
        print(x[0])
        count+=1
    else:
        if count<20:
            x[1]+=1
            print(x[1])
            count+=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 17:42:34 | 显示全部楼层
派生小生 发表于 2020-3-9 23:50
可以发数据到我qq邮箱:569673855

y想要输出的是连续10个1,10个3,10个5....以此类推。我写的只能实现10个1,不能循环,不能递增,请指教。
y=1
count=0
times=0
while times<4:
    times-=1
    while count<10:
        count+=1
        print(y)
    y+=2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 17:43:53 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-3-10 11:11
看不懂题目,可以详细说一说吗?

我自己写了一部分,问题可以简化成:
1.如何让while 内的循环体(line5到13)执行指定次数,我想的是引入j,j+=1,j<3,那么while循环可以执行3次,但是出来的结果不是我想要的。或者j<30,也不对
x=[0,3]
count=0
j=0
while j<3:
     if count<10:
         x[0]+=1
         print(x[0])
         count+=1
     else:
         if count<20:
             x[1]+=1
             print(x[1])
             count+=1
2.y想要输出的是连续10个1,10个3,10个5....以此类推。我写的只能实现10个1,不能循环,不能递增,请指教。
y=1
count=0
times=0
while times<4:
     times-=1
     while count<10:
         count+=1
         print(y)
     y+=2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 17:47:15 | 显示全部楼层
LYF511 发表于 2020-3-10 09:23
https://imgchr.com/
这个网站上传图片

好的,感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 00:48:53 | 显示全部楼层
其实我不是很理解你的意思,但是如果只是要输出你说的数据还是很容易的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 00:50:50 | 显示全部楼层
x_list=[0,3]
count=0
j=0
x = x_list[0]
print("以下为x的数据:")
while j<4:
    if x == 0:
        for i in range(10):
            x +=1
            print(x)
        j += 1
        x = x_list[1]
    elif x == 3:
        for i in range(10):
            print(x)
            x+=1
        j += 1
        x = x_list[0]
print("以下为y的数据:")
y = 1
i = 0
while i < 4:
    for m in range(10):
        print(y)
    i += 1
    y += 2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 00:52:36 | 显示全部楼层    本楼为最佳答案   
x_list=[0,3]
count=0
j=0
x = x_list[0]
y = 1
print("以下为x,y的数据:")
while j<4:
    if x == 0:
        for i in range(10):
            x +=1
            print(x,y)
        j += 1
        x = x_list[1]
        y += 2
    elif x == 3:
        for i in range(10):
            print(x,y)
            x+=1
        j += 1
        x = x_list[0]
        y += 2

    

如果是想要x,y的数据一起的话就是这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 00:54:23 | 显示全部楼层
如果要实现你题目中的输入数据自动生成,只要把相应的变量变成参数就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 07:07:14 | 显示全部楼层
XiaoPaiShen 发表于 2020-3-9 23:25
用鱼币悬赏,不是更简单吗?
另外,你的需求实在看不明白。

他等级太低
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 07:08:10 | 显示全部楼层
你要重复一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-14 12:23:44 | 显示全部楼层

感谢您的回复!还有一点不明白:
单独对比我用的
while count<10:
        count+=1
        print(y)
和你用的
for i in range(10):
        print(y)
功能相同,为什么放在while 循环中我写的就不能执行循环,但你的就可以呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-14 12:25:35 | 显示全部楼层

难怪,昨天还找半天哪里可以用鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-14 12:43:36 | 显示全部楼层

还有一个问题:
您的代码是通过if else进行x==0或x==3的切换,但是单独把相关的几行拎出来就只有一个输出0,请问为什么?
x_list=[0,3]
x = x_list[0]
if x == 0:
    print(x)
    x = x_list[1]
elif x == 3:
    print(x)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 06:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表