Jupyter排版:http://www.javashuo.com/article/p-dwdjxhac-g.htmlhtml
汇总系列:http://www.javashuo.com/article/p-dojeygnv-gw.htmlpython
VSCode设置python3的开发环境(linux下默认是python2)http://www.javashuo.com/article/p-tvzhtwbx-bq.htmllinux
欢迎提出更简单的语法~(文章中案例有两个福利哦,一个是养生,一个是人工智能[ 密码:fqif])github
复习C#基础请看附录2:https://www.cnblogs.com/dotnetcrazy/p/9102030.html#csharpshell
先说下感受,python的编程有点JavaScript的感受(好比:'和“有时候不区别),又感受像外国版的易语言,整个过程像读书同样,好比一个元素不在列表之中==> for item not in lists。使用它作个大点的项目必定要先规定好编程风格,否则能让人崩溃的。先不深究,后面会继续深究。。。(Python2我就不讲了,官方推荐使用Python3)编程
0.命名规则app
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
图片出处:http://www.javashuo.com/article/p-sldlphrt-cy.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