设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第24课】 if的嵌套

[复制链接]

0

主题

0

好友

121

积分

注册会员

Rank: 2

11#
发表于 2016-5-2 16:04:52 |只看该作者
1.png
回复

使用道具 举报

0

主题

0

好友

70

积分

注册会员

Rank: 2

12#
发表于 2016-9-1 10:58:19 |只看该作者
本帖最后由 十三才 于 2016-9-1 11:09 编辑

def quadrant(x,y):
    if x>=0:
        if y>=0:
            return 'first quadrant'

        else:
            return 'fourth quadrant'

    if x<0:
        if y>=0:
            return 'second quadrant'

        else:
            return 'third quadrant'

print'please choose your number x,y'
x=input('x=')
y=input('y=')
answer=quadrant(x,y)
print 'the answer is %s'%answer



这里面如果把‘return’换成‘print’为什么输出就不一样了?




print.png (2.22 KB, 下载次数: 384)

print的结果

print的结果

turn.png (2.11 KB, 下载次数: 386)

turn.png

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

13#
发表于 2016-9-2 10:48:32 |只看该作者
十三才 发表于 2016-9-1 10:58
def quadrant(x,y):
    if x>=0:
        if y>=0:

return就是把结果返回给函数调用的地方,本身并不输出。print只输出,没有加return就默认返回None
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

60

积分

注册会员

Rank: 2

14#
发表于 2017-10-24 15:21:18 |只看该作者
  1. def Xx(x,y):

  2.     if y>=0:
  3.         if x>=0:
  4.             print(1)
  5.         else:
  6.             print(2)
  7.     else:
  8.         if x<0:
  9.             print(3)
  10.         else:
  11.             print(4)
  12. x=int(input('输入X'))
  13. y=int(input('输入y'))
  14. num = Xx(x,y)
  15. print("坐标为(%s,%s)"%(x,y))
复制代码
回复

使用道具 举报

1

主题

0

好友

37

积分

新手上路

Rank: 1

15#
发表于 2017-11-28 13:24:21 |只看该作者
本帖最后由 Imagination 于 2017-11-28 15:04 编辑

def position(x,y):
    if x>0:
        if y>0:
            print ('你输入的(%d,%d)在第一象限'%(x,y))
        elif y<0:
            print ('你输入的(%d,%d)在第四象限'%(x,y))
        else:
            print ('你输入的(%d,%d)在X轴上'%(x,y))
    elif x<0:
        if y>0:
            print ('你输入的(%d,%d)在第二象限'%(x,y))
        elif y<0:
            print ('你输入的(%d,%d)在第三象限'%(x,y))
        else:
            print ('你输入的(%d,%d)在X轴上'%(x,y))
    else:
        print ('你输入的(%d,%d)在Y轴上'%(x,y))

print ('输入坐标值确定象限')
x = int(input('请输入X值:'))
y = int(input('请输入Y值:'))

position(x,y)
问题1,为什么代码里没有return 运行出来,没有NONE。要是我把最后的代码改成answer = position(x,y)  print (answer) 运行就会在最后打出NONE
问题2,能帮我改进一下吗 这个运行要先输入X 敲回车再输入Y 怎么写代码能直接输入X,Y 就运行函数呢
回复

使用道具 举报

0

主题

0

好友

154

积分

注册会员

Rank: 2

16#
发表于 2017-11-28 18:40:40 |只看该作者
Imagination 发表于 2017-11-28 13:24
def position(x,y):
    if x>0:
        if y>0:

1. 你没有return语句,所以没有值被返回出来
2. 那个写法相对复杂些,以py3为例,x, y = [eval(i) for i in input().split(',')]
回复

使用道具 举报

1

主题

0

好友

37

积分

新手上路

Rank: 1

17#
发表于 2017-11-28 19:37:37 |只看该作者
woodumpling 发表于 2017-11-28 18:40
1. 你没有return语句,所以没有值被返回出来
2. 那个写法相对复杂些,以py3为例,x, y = [eval(i) for i  ...

可是我把代码最后两句改了一下 ,也没有return语句 却返回None了 是怎么回事呢
def position(x,y):
    if x>0:
        if y>0:
            print ('你输入的(%d,%d)在第一象限' % (x,y))
        elif y<0:
            print ('你输入的(%d,%d)在第四象限' % (x,y))
        else:
            print ('你输入的(%d,%d)在X轴上' % (x,y))
    elif x<0:
        if y>0:
            print ('你输入的(%d,%d)在第二象限' % (x,y))
        elif y<0:
            print ('你输入的(%d,%d)在第三象限' % (x,y))
        else:
            print ('你输入的(%d,%d)在X轴上' % (x,y))
    else:
        print ('你输入的(%d,%d)在Y轴上' % (x,y))

print ('输入坐标值确定象限')

x = int(input('请输入X值:'))  
y = int(input('请输入Y值:'))


answer = position(x,y)
print (answer)

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

18#
发表于 2017-11-28 23:39:46 |只看该作者
Imagination 发表于 2017-11-28 19:37
可是我把代码最后两句改了一下 ,也没有return语句 却返回None了 是怎么回事呢
def position(x,y):
    i ...

没有return默认返回None,相当于 return None
你print了,它就被输出了

x, y=eval(input())
输入用逗号隔开即可
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

37

积分

新手上路

Rank: 1

19#
发表于 2017-11-29 12:21:36 |只看该作者
crossin先生 发表于 2017-11-28 23:39
没有return默认返回None,相当于 return None
你print了,它就被输出了

感谢crossin老师解惑
回复

使用道具 举报

0

主题

2

好友

72

积分

注册会员

Rank: 2

20#
发表于 2018-4-6 10:45:24 |只看该作者
方法一:
  1. x=eval(input('please enter the abscissa'))
  2. y=eval(input('please enter the ordinate'))
  3. if x>0:
  4.     if y>0:
  5.         print('First quadrant')
  6.     elif y<0:
  7.         print('Fourth quadrant')
  8.     else:
  9.         print('The number is in active abscissa')
  10. elif x<0:
  11.     if y>0:
  12.         print('Second quadrant')
  13.     elif y<0:
  14.         print('Third quadrant')
  15.     else:
  16.         print('The number is in negative abscissa')
  17. else:
  18.     if y>0:
  19.         print('The number is in active ordinate')
  20.     elif y<0:
  21.         print('The number is in negative ordinate')
  22.     else:
  23.         print('The center is waiting for you!!!')
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-21 23:21 , Processed in 0.019760 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部