鱼C论坛

 找回密码
 立即注册
查看: 142|回复: 15

[已解决]变量调用

[复制链接]
最佳答案
0 
发表于 2020-2-14 23:45:09 | 显示全部楼层 |阅读模式

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

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

x
微信截图_20200214234302.png

图二中调用图一中的 变量,相加并打印,该如何实现啊?
最佳答案
2020-2-14 23:55:17
x0,y0是函数中的局部变量,外面无法调用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1598 
发表于 2020-2-14 23:55:17 | 显示全部楼层    本楼为最佳答案   
x0,y0是函数中的局部变量,外面无法调用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-15 08:55:48 | 显示全部楼层
冬雪雪冬 发表于 2020-2-14 23:55
x0,y0是函数中的局部变量,外面无法调用。

定义成全局变量呢?外部能调用吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1006 
发表于 2020-2-15 09:01:56 | 显示全部楼层
shangrilas 发表于 2020-2-15 08:55
定义成全局变量呢?外部能调用吗?

全局就能了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-15 09:09:28 | 显示全部楼层

貌似不行啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1006 
发表于 2020-2-15 09:10:40 | 显示全部楼层

写global语句了吗
没写的话Python默认会创造一个同名的局部变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-15 09:18:37 | 显示全部楼层
本帖最后由 shangrilas 于 2020-2-15 09:19 编辑
qiuyouzhi 发表于 2020-2-15 09:10
写global语句了吗
没写的话Python默认会创造一个同名的局部变量


==========文件1============


def XYZ():
    print('请输入起始XY坐标,X坐标为8位数,Y坐标为7位数:')
   
    global x0
    global y0

    while True:
        try:
            x0, y0 = map(int, input().split())
            if x0 == 0 or y0 == 0:
                print("坐标不能全为 〇 ,请重新输入!")
                continue
            elif 8 != len(str(x0)) or 7 != len(str(y0)):
                print("X坐标为8位数,Y坐标为7位数,请重新输入!")
                continue
            else:
                print("初次打印 X%d"%x0 +"  " + "Y%d"%y0)
                return x0,y0
                #break

        except ValueError:
            print('输入有误!请重新输入')
            
if __name__=='__main__':
    XYZ()
=========文件2=============
from Coords import*

XYZ()
zz = x0+y0
print("再次打印 X%d"%zz)


不知道是我这哪儿写的的有问题,恳请大佬指教下!!谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1006 
发表于 2020-2-15 09:22:32 | 显示全部楼层
shangrilas 发表于 2020-2-15 09:18
==========文件1============

global不能写在变量的前面啊
放到变量定义的后面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-15 09:29:33 From FishC Mobile | 显示全部楼层
qiuyouzhi 发表于 2020-2-15 09:22
global不能写在变量的前面啊
放到变量定义的后面

写在哪个位置啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1006 
发表于 2020-2-15 09:35:00 | 显示全部楼层
def XYZ():
    print('请输入起始XY坐标,X坐标为8位数,Y坐标为7位数:')
   
    # global x0
    # global y0 不要写在这里

    while True:
        try:
            x0, y0 = map(int, input().split())
            global x0
            global y0 #写在变量定义后面,让Pyhon找得到
            if x0 == 0 or y0 == 0:
                print("坐标不能全为 〇 ,请重新输入!")
                continue
            elif 8 != len(str(x0)) or 7 != len(str(y0)):
                print("X坐标为8位数,Y坐标为7位数,请重新输入!")
                continue
            else:
                print("初次打印 X%d"%x0 +"  " + "Y%d"%y0)
                return x0,y0
                #break

        except ValueError:
            print('输入有误!请重新输入')
            
if __name__=='__main__':
    XYZ()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-15 11:31:13 | 显示全部楼层
qiuyouzhi 发表于 2020-2-15 09:35
def XYZ():
    print('请输入起始XY坐标,X坐标为8位数,Y坐标为7位数:')
   

微信截图_20200215113044.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1006 
发表于 2020-2-15 11:49:27 | 显示全部楼层

哦,你这个定义变量写在循环里了
所以global也会循环
就会发生重复global
那你就不用全局变量,直接都写到函数里完事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-15 19:04:47 | 显示全部楼层
qiuyouzhi 发表于 2020-2-15 11:49
哦,你这个定义变量写在循环里了
所以global也会循环
就会发生重复global

大佬,那这个要咋写呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1006 
发表于 2020-2-15 19:31:26 | 显示全部楼层
shangrilas 发表于 2020-2-15 19:04
大佬,那这个要咋写呢?

我先看下哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1006 
发表于 2020-2-15 19:34:18 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-2-15 19:47 编辑

把所有东西全部打包到XYZ函数里,不要在别的地方操作

评分

参与人数 1鱼币 +5 收起 理由
shangrilas + 5 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-19 12:13:38 | 显示全部楼层
qiuyouzhi 发表于 2020-2-15 19:34
把所有东西全部打包到XYZ函数里,不要在别的地方操作

这个方法可行!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2020-9-21 17:38

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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