small= x if x<y else y python的这句语法怎么解释?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了small= x if x<y else y python的这句语法怎么解释?相关的知识,希望对你有一定的参考价值。

求 x,y,z 3个数中最小的值,如果(x < y and x < z),则small = x,否则(代表x不是最小的,那么就是y或者z),判断是否 y< z,如果是,则small=y,如果否small = z

lambda表达式也就是匿名函数。用法:lambda 参数列表d: 返回值例: +1函数 f=lambda x:x+1 max函数(条件语句的写法如下) f_max=lambda x,y:x if x>y else y 上述定义的函数与用def定义的函数没有区别,而且左边的f=在某些情况下并不是必要的。

filter,map,reduce filter函数接受两个参数,第一个是过滤函数,第二个是可遍历的对象,用于选择出所有满足过滤条件的元素,不同版本的filter的返回值稍有区别,我用的是python3.5,filter返回的是经过过滤的可遍历对象。

扩展资料:

Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。

这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。

参考资料来源:百度百科-Python

参考技术A 是一个if else 语句啊,如果x<y 把x的值赋给small 否则把y的值赋给small追问

如果用这个语法x=6 y=7,那small等于?

追答

6啊

追问

y大于x不成立,为什么输出的也是y?不成立不应该输出x吗?

那x=7,y=6 small等于?

追答

结果都是6 不合理啊

追问

啊?

不应该是7吗?

这是怎么回事啊?

追答

对的啊,我被自己给搞晕了,你在改变x,y的值的时候,判断条件也发生了变化,第一个有的是if语句,第二个走的是else语句,结果一样的

追问

嗯嗯,我也明白了

本回答被提问者采纳

#include<stdio.h> int max(x,y) int x,y; int z; if (x>y)z=x; else z=y; return z;

#include<stdio.h>
int max(x,y)
int x,y;
int z;
if (x>y)z=x;
else z=y;
return z;

main()
int a,b,c,d;
printf("please input three numbers (a,b,c):\n");
scanf("%d,%d,%d",&a,&b,&c);
d=max(a.b);
d=max(c,d);
printf("%d,%d,%d,the max is%d\n",a,b,c,d);

这个是教程里复制的代码,直接在vs2010里使用,出现如下错误:
错误1error C2143: 语法错误 : 缺少“;”(在“,”的前面)c:\users\l\documents\visual studio 2010\projects\momo\momo\ij.c61momo
错误2error C2181: 没有匹配 if 的非法 elsec:\users\l\documents\visual studio 2010\projects\momo\momo\ij.c71momo
错误3error C2224: “.b”的左侧必须具有结构/联合类型c:\users\l\documents\visual studio 2010\projects\momo\momo\ij.c141momo
9IntelliSense: 表达式必须包含类类型c:\users\l\documents\visual studio 2010\projects\momo\momo\ij.c148momo
8IntelliSense: 表达式必须具有 (pointer-to-) 函数类型c:\users\l\documents\visual studio 2010\projects\momo\momo\ij.c144momo
10IntelliSense: 表达式必须具有 (pointer-to-) 函数类型c:\users\l\documents\visual studio 2010\projects\momo\momo\ij.c154momo
6IntelliSense: 应输入“)”c:\users\l\documents\visual studio 2010\projects\momo\momo\ij.c310momo
7IntelliSense: 应输入声明c:\users\l\documents\visual studio 2010\projects\momo\momo\ij.c51momo

首先这种声明函数的方法已经过时了,可能vs2010不支持
int max(x,y)
int x,y;
改成 int max(int x, int y)
另外d=max(a.b);你在a和b之间写的是小句点.而不是逗号追问

这个句号是我后面不小心打错的 = = ,那请问下有没有比较好的C语言教程呢?我想从头开始学编程,不知道从哪里着手比较好

追答

如果没入门呢,看谭浩强的书也行。留个邮箱给你发个教程。

追问

谭浩强的书有下载,但是光看书能明白么?我是看视频教程《边用边学C语言》的。我邮箱地址rat.light@gmail.com,发个大神你的联系方式吧,有什么问题的话能直接问你么?

追答

已发

参考技术A int max(int x,inty)

int z;
if (x>y)z=x;
else z=y;
return z;


位置错了 你这是盗版的吧 这么低级的错误会在教程里
参考技术B #include<stdio.h>
int max(int x,int y)

if (x>y)
return x;
else
return y;

void main()

int a,b,c,d;
printf("please input three numbers (a,b,c):\n");
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b);
d=max(c,d);
printf("%d,%d,%d,the max is%d\n",a,b,c,d);

以上是关于small= x if x<y else y python的这句语法怎么解释?的主要内容,如果未能解决你的问题,请参考以下文章

三元符号

#include<stdio.h> int max(x,y) int x,y; int z; if (x>y)z=x; else z=y; return z;

PHP 3 运算符 if...else...elseif 语句

python三元操作符

比较大小

在Python中压缩`x if x else y`语句