由于建立代理模型会用到python,而使用unity进行可视化展示离不开C#,两者如果不进行关联理解会十分混乱,常常会了这个忘了那个,或者搞混记错。
在此进行两者的对比整理,便于理解和后期查阅,其中p代表python,c代表c#。
目录
运行当前代码:
p.快捷键为 ctrl+shift+f10
c.快捷键为ctrl+f5
分号:
p.写完一行语句无需加分号
c.需要加分号
用户输出:
p.print()
c.常用Console.WriteLine()
用户输入:
p.input() 其返回值是string
c.常用Console.ReadLine() 其返回值也是string。例
注释:
p.单行注释使用# 多行注释使用’’’ ’’’
c.单行注释使用// 多行注释使用/* */ 使用三个/可以对函数或者类进行注释
变量:
p.无需声明,直接创建 例如name = ‘李华’。一般约定俗成将大写字母认为常量。
c. 可以先声明数据类型再赋值,也可以声明与赋值一次性完成。如 string name;name = “李华”; 或 string name = “李华”;
命名规范:
数据类型:
p.数字(整形 浮点型(无double类型) 布尔型 复数) 字符串(单引号和双引号都可以) 列表 元组 集合 字典 None(比如print函数的返回值就是NONE)
c.好像没p这么多,int float(可存整数和小数,存小数需要再数值后加f) double(可存整数和小数)bool string(字符串类型只能双引号,可以存储空) char(存一个字符,用单引号,不可存储空)
判断数据类型:
p.使用type函数判断是什么类型。使用isinstance函数判断是不是认为的类型
c.常利用.GetType()函数 如
+号:
p.字符串和数字类型不能直接相加,会报错,需要先进行类型转换,如利用str函数将数字转为字符串类型
c.字符串和数字类型能直接相加(相连),感人,会自动将数字转为字符串类型。
关系运算符(C#)与比较运算符(P)相同
逻辑运算符:
p.与 或 非:and or not
c.与 或 非:&& || !
运算符++ — +=
两者+=用法是一样的 即a+=5表示a=a+5
p.不支持++ --
c.单独使用:
配合使用:
占位符:
大体一样,都用到大括号,只是后面有细微差别
p. 利用format(当然还有其他占位方法,这里只看和C#能类比的)
c.
转义字符(都是反斜杠):
基本是一样的,比如\n表示换行,\\表示就一个\(这些基本都是在用户输出中用的)
取消转义:
p. 使用r可以让反斜杠不发生转义。 如print(r"我爱你\n") 输出结果为:我爱你\n
c.使用@。 如Console.WriteLine(@"我爱你\n"); 输出结果为:我爱你\n
类型转换:
p.分为自动转换(当两个不同类型的数据进行运算时,结果会像更高精度进行计算,精度等级:布尔 < 整型 < 浮点型 < 复数。)和强制转换(常用)
c.类型兼容的有自动转换和强制转换(比如都是数值),不兼容的如使用convert函数进行转换(如数值到字符串的转换)。具体如下:
何为兼容: 例如都存储数值
何为大小:显然double最大,虽然int和float差不多,但是其可以装整数和小数,故其比int大
因为float比较大,所以与Int相加要用float存储,double道理一样
常量:
p.python中的常量实际上就是变量。很简单,无需过多思考。
c.常量一旦声明,就不可以再重新赋值。。语法为:(比变量的语法就多了一个const,注意这里要一气呵成,不能先声明,后再赋值)