1.已知函数中X和y的关系满足如下的条件:
(1)若x<0,则y=0;
(2)若0<=x<5,则y=x;
(3)若5<=x<10,则y=3x-5;
(4)若10<=x<20,则y=0.5x-2;
(5)若20<=x,则y=0;
要求:编写一个程序,使用if-elif语句实现分段函数的计算,并且输出y的值。
方法一:简单的for循环
x=int(input('请输入x的值'))
if x<0:
y = 0
print(y)
elif 0<=x<5:
y = x
print(y)
elif 5<=x<10:
y=3*x-5
print(y)
elif 10<=x<20:
y=0.5 * x - 2
print(y)
elif 20<=x:
print(0)
方法二:放到封装成一个函数,然后调用(其实跟第一种没啥区别,只是更好看了一点)
x=int(input('请输入x的值'))
def mm(x):
if x<0:
y = 0
print(y)
elif 0<=x<5:
y = x
print(y)
elif 5<=x<10:
print(3*x-5)
elif 10<=x<20:
print( 0.5 * x - 2)
elif 20<=x:
print(0)
mm(x)
方法三:使用全局变量进行调用(在第二步的基础上)
x=int(input('请输入x的值'))
y = 0
def mm(x):
if x < 0:
global y
print(y)
elif 0 <= x < 5:
y = x
print(y)
elif 5 <= x < 10:
y = 3 * x - 5
print(y)
elif 10 <= x < 20:
y = 0.5 * x - 2
print(y)
elif 20 <= x:
print(0)
mm(x)
注意到小细节了没有:
这里使用了global,修改全局变量
好,那么现在给大家扩展一下全局变量和局部变量的知识:
全局变量是定义在整个程序外部的,而局部变量只是相对于一小部分而言。简言之:全局变量就是定义在函数外部的,局部变量是定义在函数内部的。
全局变量在函数内部进行调用的时侯只需要调用一次就够了,不需要调用好多次。
这是我刚开始使用global来写这道题的,后来就怎么都出不来,最后才明白原来global如果需要在函数内部进行调用的话,只需要一次就够了。((/ω\)(/ω\))
大家有没有发现,这三种方法是越来越优化了代码,其实吧,我个人觉得,随着知识储备的越多,你的代码就会从刚开始的笨重变得越来越瘦小了呢!所以说,大家要努力学习新知识,为自己的代码瘦瘦身哦!