东至县 溧水县 瓦房店市 忻城县 讷河市 达拉特旗 水城县 湘潭市 竹北市 冀州市 都江堰市 湖州市 阜阳市 汝南县 监利县 崇仁县
国内 >

诸葛烤鱼_Python3 与 C# 基础语法对比(就当Python和C#基础的普及吧)

标签:也曾 扎金花牌多少张

VSCode设置python3的开发环境(linux下默认是python2)https://www.cnblogs.com/dotnetcrazy/p/9095793.html

欢迎提出更简单的语法~(文章中案例有两个福利哦,一个是养生,一个是人工智能[密码:fqif])

先说下感觉,python的编程有点JavaScript的感觉(比如:"和“有时候不区别),又感觉像外国版的易语言,整个过程像读书一样,比如一个元素不在列表之中==> for item not in lists。使用它做个大点的项目一定要先规定好编程风格,不然能让人崩溃的。先不深究,后面会继续深究。。。(Python2我就不讲了,官方推荐使用Python3

0.命名规则

Python官方是推荐使用_来间隔单词,但一般开发人员都是以各自主语言的命名来定义的,这个就各人爱好了,不过团队一定要统一。

标示符字母、下划线和数字组成,且数字不能开头(这个基本上都一样)注意标识符是区分大小写的

命名规则,总的原则就是见名知意,一般都是驼峰命名法,纯Python的话推荐用_连接单词

扩充:Python的关键词可以自己打印一下:

["False", "None", "True", "and", "as", "assert", "break", "class", "continue", "def", "del", "elif", "else", "except", "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "nonlocal", "not", "or", "pass", "raise", "return", "try", "while", "with", "yield"]

1.注释

python:#注释一行三个单引号或者三个双引号注释多行"""XXX"""或者"""XXXX"""(一般用#就够了,有点像shell脚本的感觉)

python输出就直接print即可,C是printf(不要搞混哦)

C、Java、Net都是//注释一行,/**/注释多行

2.变量

python定义变量比较牛逼,直接写变量名即可,句子后面不用加分号,eg:name="小明"

netcore,可以用var来进行类型推断,eg:var name="小明";

3.输入输出

换行输出,不换行输出:( 使用这个就不说了,它们和C都是一样的)

python:print("dnt.dkill.net/now",end="") #默认end=" " (" 和 " 随意)

netcore:Console.WriteConsole.WriteLine

-------------------------------------------------------------------------------------

python输出多个重复字符,不需要自己手打N个*或者for循环输出多个重复字符,eg:print("x"*10)

# %c    字符
# %s    通过str() 字符串转换来格式化
# %o    八进制整数
# %x    十六进制整数(小写字母)
# %X    十六进制整数(大写字母)
# %e    指数(小写"e")
# %E    指数(大写“E”)
# %f    浮点实数
# %g    %f和%e 的简写
# %G    %f和%E的简写

下面来个输入输出的简单的案例吧:打印一张名片,Name:毒逆天,Gender:男

Python:print("Name:%s,Gender:%s"%(name,gender))【注意引号后面没有,哦】

NetCore:Console.WriteLine($"Name:{name},Gender:{gender}");

4.类型转换+算术运算符

python:类型(值),eg:int(),long(),float(),str()...等等(Python没有double类型哦~)【:转换成16进制:hex()、转换为8进制:oct()

netcore:该案例推荐使用int.TryParse,我这边就用常用的Convert系列了【支持类型比较多】

Convert.ToInt64(),Convert.ToDouble(),Convert.ToString()

算术运算符编程语言基本上差不多,Python多了个 // 取商(%是取余)和 幂**,来个案例:

netcore(C#常用数学方法都在Match类中)

+= -= *= /= %= **= //= 这些就不用详说了吧?(举个例子:c += a 等效于 c = c + a

5.if else

说Python像外国版的易语言,这边就可以看出来一点了,先说说Python的逻辑运算符==》andornot,这个倒是跟C、C#、Java等大大不同,如果再结合Python命名规则就感觉在阅读文章一样

关系运算符和其他语言基本上差不多(== != <> > < >= <=),就一点不一样:也可以用<>

来个if else基础语法:括号可加可不加,但是记得加:。不用大括号,但是if里面的代码注意缩进

netcore:if或者else下面是单行代码可以不用写括号

再来个嵌套的:注意哦~else if 在python里面简写成了:elif

netcore:单行代码可以不用写括号

6.while

直接来个案例:

python里面没有++ 和 --,这点的确用的有点小不方便,扩展部分有相关说明

netcore

海豚湾恋人_2018年最新新闻网

7.for

python的for循环,类似于js里面的for in 以及C#里面的foreach

netcore:foreach (var i in name)

------------------------------------------------------------------------------------------------------

老规矩,来个扩展:switch(这个目前不用掌握,看看就好,后面会继续探讨的)

Python没有 ++/-- 参考文章(点我)

python 中,变量是以内容为基准而不是像 c 中以变量名为基准,所以只要你的数字内容是5,不管你起什么名字,这个变量的 ID 是相同的,同时也就说明了 python 中一个变量可以以多个名称访问

如上例,a 和 b 都是 5,当你++改变了 a 时,b 也会跟着变,这当然不是我们希望的。so,正确的自增操作应该 a += 1,通过 id() 观察可知,id 值变化了,即 a 已经是新值的名称

-----------------------裸婚时代_2018年最新新闻网-----------------------------------------------------------------------------------------------------------------------

Python 没有 switch / case 语句。为了实现它,我们可以使用字典映射:

# 官方的解释说,“用if... elif... elif... else序列很容易来实现 switch / case 语句”。而且可以使用函数字典映射和类的调度方法。
def numbers_to_strings(argument):
    switcher = {
        0: "zero",
        1: "one",
        2: "two",
    }
    return switcher.get(argument, "nothing")

这段代码类似于:

function(argument){
    switch(argument) {
        case 0:
           昆仑决_2018年最新新闻网 return "zero";
        case 1:
永夜君王_2018年最新新闻网
            return "one";
        case 2:
            return "two";
        default:
           三菱_2018年最新新闻网 return "nothing";
    };
};
在 Python 中字典映射也可以包含函数或者 lambda 表达式
def zero():
    return "zero"
 
def one():
    return "one"
 
def numbers_to_functions_to_strings(argument):
    switcher = {
        0: zero,
        1: one,
        2: lambda: "two",
    }
    func = switcher.get(argument, lambda: "nothing")
    return func()

类的调度方法:

如果在一个类中,不确定要使用哪种方法,可以用一个调度方法在运行的时候来确定。

    class Switcher(object):
    def numbers_to_methods_to_strings(self, argument):
        method_name = "number_" + str(argument)
        method = getattr(self, method_name, lambda: "nothing")
        return method()
 
    def number_0(self):
        return "zero"
 
    def numbefoxmail_2018年最新新闻网r_1(self):
        return "one"
 
    def number_2(self):
        return "two"

https://docs.python.org/3.6/faq/design.html#why-isn-t-there-a-switch-or-case-statement-in-python

Python设计相关的为什么,可以参考官方文档:https://docs.python.org/3.6/faq/design.html

当前文章:http://dhx-gouzaoyu-com.dz2bef.tw/kquf0mtng/a0cc4_157433.html

发布时间:2019-07-18 06:07:44

澳门银河送彩金  澳门银河真人在线娱乐  澳门银河手机网站  北大校长致歉是种“求真”精神  1200万现金堆成墙!开发商豪奖村民  银河娱乐手机版yh163am.com  世界杯投注  澳门银河官网手机app  银河娱乐官网yh163am.com美国千名经济学家致信特朗普:避免新保护主义  919银河优越会  

相关文章
推荐图文
最热文章