2019-12-05 学习Python记录

之前就在公众号等众多途径了解到廖雪峰老师的课程,也下载了相关的资料,就是一直没有去好好练习,我发现不练习根本没有什么用,之前学R的时候觉得自己好像都学会了,但是到了真正要自己完成任务的时候,代码一个都敲不出来,然后电脑上东西又多又杂,找起来特别麻烦。
还是去曾老师的博客找到源代码。
所以吸取教训,每学一个就记录下来,放在好找的地方。
参考学习资料Python教程 - 廖雪峰的官方网站
廖老师的网站有链接,他有个小白入门实战的工具推荐 awesome-python3-webapp

Python3教程

这就是为我量身定制的教程啊(虽然第三条不符合但是不影响)。

如果你是小白用户,满足以下条件:

  • 会使用电脑,但从来没写过程序;
  • 还记得初中数学学的方程式和一点点代数知识;
  • 想从编程小白变成专业的软件架构师;
  • 每天能抽出半个小时学习。

上面这个推荐他做了2次推广,一个是5年前,一个是6年前的,找到最新的教程是持续在更新的这个learn-python3
这里面有超级多的例子,而且由于Python语法的写作原则,这些代码都非常好理解,有了这个代码再结合马哥的视频,简直完美了。

另一就是目前有的资源:
http://yun.itheima.com/map/53.html

上周学习认识Python,了解了元素(和向量类似),学习了while循环,函数等基础概念
今天学习列表,元祖等相关基础:
这里的函数跟R的函数基本上是一样的,函数的集合在R里面叫包,这里叫模块,基本上也一样,调用R包用libary,调用模块就用import,在R中直接用包里的函数名,而Python里面稍微有点差别,有分别针对列表(相当于R里面的向量或者列表)等对应的函数,函数是通用的,但是函数名基本和R里面一样的,比如排序用sort,等等,调用起来更便利一点:

  • 调用的时候模式举例:列表.函数名(参数)
  • 定义列表:list=["","",...]
    定义完可以进行增删改,和R的字符串取子集的操作类似,就是索引起点位置不同,R里面从1开始,P里面是以0开始。
  • 定义元祖:Tuple=("","",...)
    定义完是不可以进行增删改的。
    关键字从黑马教程的33现在变成了35个,多了'async', 'await'
#在终端里面使用ipython3进入python3的解释器,就可以进行交互式学习(指令和shell很多类似,可用tab补齐)
$ ipython3
Python 3.7.4 (default, Aug 13 2019, 15:17:50) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import keyword                                                          

In [2]: print(keyword.kwlist)                                                   
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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']

In [3]: len(keyword.kwlist)                                                     
Out[3]: 35

定义元祖后可以同列表一样进行向量取子集的操作:

In [4]: info_tuple = ("zhangsan", 18, 1.75)                                     

In [5]: type(info_tuple)                                                        
Out[5]: tuple

In [6]: info_tuple[0]                                                           
Out[6]: 'zhangsan'

In [7]: info_tuple[2]                                                           
Out[7]: 1.75

In [8]: empty_tuple = ()                                                        

In [9]: type(empty_tuple)                                                       
Out[9]: tuple

In [10]: single_tuple = (5)                                                     

In [11]: type(single_tuple)                                                     
Out[11]: int

In [12]: single_tuple = (5,)                                                    

In [13]: type(single_tuple)                                                     
Out[13]: tuple

基本上和R的操作是类似的,只是这个定义的类型有点差异,定义只有一个元素的元祖时需要在后面添加一个逗号,否则就变成了整型而不是元祖了,类型是根据括号里的元素来决定的。
在ipython3中练习

In [14]: info = ()                                                              

In [15]: info.                                                                  
  File "<ipython-input-15-b65a21e93d05>", line 1
    info.
         ^
SyntaxError: invalid syntax

不知道怎么出现这个语法错误了。后来发现视频中老师默认的用的是2.4版本的,估计是解释器版本的原因导致的。

  • 之后学习了除了列表外一个最常用的数据类型,字典
  • 定义方式:){key:value},key的类型必须一致相当于索引,值的类型可以多样
In [7]: xiaoming = {"name": "xiaoming", 
   ...:              "age": 18, 
   ...:              "gender": True 
   ...:              "height": 1.75 
   ...:              "weight": 75.5}                                            
  File "<ipython-input-7-3db4e70eab53>", line 4
    "height": 1.75
           ^
SyntaxError: invalid syntax
#练习的时候打错了,少打了逗号“,”由于我这个版本的解释器不能识别中文,可能需要更改些设置,我就输入了拼音
In [8]: xiaoming = {"name": "xiaoming", 
   ...:              "age": 18, 
   ...:              "gender": True, 
   ...:              "height": 1.75, 
   ...:              "weight": 75.5}                                            

In [9]: print(xiaoming)                                                         
{'name': 'xiaoming', 'age': 18, 'gender': True, 'height': 1.75, 'weight': 75.5}

In [10]: print(xiaoming["name"])                                                
xiaoming

In [11]: print(xiaoming["xueli"] = "benke")                                     
  File "<ipython-input-11-2c03098e9c4c>", line 1
    print(xiaoming["xueli"] = "benke")
         ^
SyntaxError: keyword can't be an expression
#一行一个命令,字典的增删和列表类似,通过索引来完成
In [12]: xiaoming["xueli"] = "benke"                                            

In [13]: print(xiaoming)                                                        
{'name': 'xiaoming', 'age': 18, 'gender': True, 'height': 1.75, 'weight': 75.5, 'xueli': 'benke'}

In [14]: xiaoming.pop("name")                                                   
Out[14]: 'xiaoming'

In [15]: print(xiaoming)                                                        
{'age': 18, 'gender': True, 'height': 1.75, 'weight': 75.5, 'xueli': 'benke'}

一行一个命令,字典的增删和列表类似,通过索引来完成。
不想重复造轮子了,在知乎上看到一个R&Python数据处理的系列,对比2个工具的效果,可以说是势均力敌,各有优势。
12-18日更新
我在自己的羽雀端做了相应的摘录https://www.yuque.com/chelsealp/kb
参考学习资料:R&Python Data Science 系列:数据处理系列
这个素材供者还关注了一个从零开始写Python爬虫的专栏,以后也可以学习一下
https://zhuanlan.zhihu.com/p/29195069

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容