Python3 与 NetCore 基础语法对比(就当Python和C#基础的普及吧)
Jupyter排版:https://www.cnblogs.com/dotnetcrazy/p/9102030.html
汇总系列:https://www.cnblogs.com/dunitian/p/4822808.html#ai
VSCode设置python3的开发环境(linux下默认是python2)https://www.cnblogs.com/dotnetcrazy/p/9095793.html
欢迎提出更简单的语法~(文章中案例有两个福利哦,一个是养生,一个是人工智能[ 密码:fqif])
复习C#基础请看附录2:https://www.cnblogs.com/dotnetcrazy/p/9102030.html#csharp
先说下感觉,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.输入输出:r''表示''内部的字符串默认不转义
换行输出,不换行输出:(\n使用这个就不说了,它们和C都是一样的)
python:print("dnt.dkill.net/now",end='') #默认end='\n' (' 和 " 随意)
netcore: Console.Write Console.WriteLine
-------------------------------------------------------------------------------------
python输出多个重复字符,不需要自己手打N个*或者for循环输出多个重复字符,eg:print("x"*10)
如果你不太确定应该用什么,
%s永远起作用,它会把任何数据类型转换为字符串# %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的逻辑运算符==》与and 或or 非not,这个倒是跟C、C#、Java等大大不同,如果再结合Python命名规则就感觉在阅读文章一样
关系运算符和其他语言基本上差不多(== != <> > < >= <=),就一点不一样:也可以用<>
来个if else基础语法:括号可加可不加,但是记得加:。不用大括号,但是if里面的代码注意缩进
netcore:if或者else下面是单行代码可以不用写括号
再来个嵌套的:注意哦~else if 在python里面简写成了:elif
netcore:单行代码可以不用写括号
6.while
直接来个案例:
python里面没有++ 和 --,这点的确用的有点小不方便,扩展部分有相关说明
netcore
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 已经是新值的名称
for的扩展(一般不太用)官方参考:https://docs.python.org/3/reference/compound_stmts.html#the-for-statement
图片出处:https://www.cnblogs.com/dspace/p/6622799.html
Python 没有 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:
return "zero";
case 1:
return "one";
case 2:
return "two";
default:
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 number_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
附录2:C#基础(逆天上学那会做的笔记)
Python3 与 NetCore 基础语法对比(就当Python和C#基础的普及吧)的更多相关文章
- Python3 与 C# 面向对象之~继承与多态 Python3 与 C# 面向对象之~封装 Python3 与 NetCore 基础语法对比(Function专栏) [C#]C#时间日期操作 [C#]C#中字符串的操作 [ASP.NET]NTKO插件使用常见问题 我对C#的认知。
Python3 与 C# 面向对象之-继承与多态 文章汇总:https://www.cnblogs.com/dotnetcrazy/p/9160514.html 目录: 2.继承 ¶ 2.1.单继 ...
- Python3 与 NetCore 基础语法对比(String专栏)
汇总系列:https://www.cnblogs.com/dunitian/p/4822808.html#ai Jupyter排版:https://www.cnblogs.com/dunitian/p ...
- Python3 与 NetCore 基础语法对比(Function专栏)
Jupyter最新排版:https://www.cnblogs.com/dotnetcrazy/p/9175950.html 昨晚开始写大纲做demo,今天牺牲中午休息时间码文一篇,希望大家点点赞 O ...
- Python3 与 C# 基础语法对比(就当Python和C#基础的普及吧)
文章汇总:https://www.cnblogs.com/dotnetcrazy/p/9160514.html 多图旧排版:https://www.cnblogs.com/dunitian/p/9 ...
- Python3 与 C# 基础语法对比(Function专栏)
Code:https://github.com/lotapp/BaseCode 多图旧版:https://www.cnblogs.com/dunitian/p/9186561.html 在线编程: ...
- Python3 与 NetCore 基础语法对比(List、Tuple、Dict、Set专栏)
Jupyter最新版:https://www.cnblogs.com/dotnetcrazy/p/9155310.html 在线演示:http://nbviewer.jupyter.org/githu ...
- Python3 与 C# 基础语法对比(String专栏)
Code:https://github.com/lotapp/BaseCode 多图旧排版:https://www.cnblogs.com/dunitian/p/9119986.html 在线编程 ...
- Python3 与 C# 基础语法对比(List、Tuple、Dict、Set专栏)
Code:https://github.com/lotapp/BaseCode 多图旧版:https://www.cnblogs.com/dunitian/p/9156097.html 在线预览: ...
- Python学习笔记:与Java 基础语法对比
闲着无聊学习下Python 的语法.由于我目前主要编程语言还是Java ,所以针对Python 的学习我主要是通过与Java 进行对比.我使用的是Python3,因此语法上也会遵循Python3 的规 ...
随机推荐
- android默认开启adb调试方法分析
用adb调试android时,每次接入usb线,都会提示一个确认打开usb调试功能的窗口,有时候,我们需要默认打开usb调试功能.或者无需弹出对话框,直接默认开启.这个我们需要分析adb的流程了. a ...
- Python __init__.py文件的作用
我们经常在python的模块目录中会看到 "__init__.py" 这个文件,那么它到底有什么作用呢? 1. 模块包(module package)标识 如果你是使用pytho ...
- AIOps 平台的误解,挑战及建议(中)— AIOps常见的误解
本文篇幅较长,分为上,中,下,三个部分进行连载.内容分别为:AIOps 背景/所应具备技术能力分析(上),AIOps 常见的误解(中),挑战及建议(下). 前言 我大概是 5,6 年前开始接触 ITO ...
- python 冒泡、二分查找
冒泡: import random def _sort(_lst): count = 1 while count < len(_lst): for i in range(0, len(_lst) ...
- 最新的windows xp sp3序列号 xp序列号
最新的windows xp sp3序列号(绝对可通过正版验证) MRX3F-47B9T-2487J-KWKMF-RPWBY(工行版) 可用(强推此号) QC986-27D34-6M3TY-JJXP9- ...
- c/c++ 类成员变量,成员函数的存储方式,以及this指针在c++中的作用
c/c++ 类成员变量,成员函数的存储方式,以及this指针在c++中的作用 c++不会像上图那样为每一个对象的成员变量和成员函数开辟内存空间, 而是像下图那样,只为每一个对象的成员变量开辟空间.成员 ...
- python——函数之生成器
1 生成器函数的含义 生成器是一个返回可以迭代对象的函数,它是一个特殊的迭代器,但迭代器的抽象层级更高且比较复杂需要实现很多方法.相较迭代器而言,生成器简单使用. 2 生成器的创建方式 2.1 ...
- Win 10 启用Linux子系统---Kali 和Ubuntu子系统
注:转载请注明出处,谢谢!!! 一.Linux on Windows简介 Win10一周年版推出了用于Windows的Linux子系统这一功能.Linux子系统和Windows的结合真是有一种神互补. ...
- March 06th, 2018 Week 10th Tuesday
Hope for the best, but prepare for the worst. 抱最好的愿望,做最坏的打算. To hope for the best and prepare for th ...
- 阿里云短信服务调用例子-Python
阿里云短信服务调用例子 阿里云官方文档https://helpcdn.aliyun.com/document_detail/101893.html 首先需要安装阿里云PythonSDK(下面是pyth ...

























