Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!

支付宝云生态技术 2021-10-29 11:55:33
后端 Python IT职场 数据结构 其它

此之谓入门,其标准是,在不计效率的情况下,可以使用这门语言实现一个不太复杂的功能。

当然,这个不计效率也不是毫无原则的不计,比如我可以1小时搞定,那么刚入门的新手需要1天甚至2天,他将需要大量的时间去查库查类查函数,但绝不至于用上一周半周的。

我从来都没学过python,当年只是受够了Matlab,而想把一个用Matlab写的类转成其他语言,结果用了一周,就把一个涵盖图像处理、数据拟合等功能的一千来行Matlab代码顺利转成了Python。过了没几年,Matlab就对我们禁用了,可见当年的选择是极为英明的。

那么如今让我重写一遍那个类,大概只需要一天不到。这就是新手和老手的区别,但也仅仅是新手和老手的区别。

从入门到熟练运用,需要的不是什么思维的提升,而仅仅是是一个字——,或者更直观地说,就是看代码量。从这个意义上来说,越快入门,就可以更早地堆积代码量,从而更早地熟练运用Python,而不是按部就班地从入门到放弃。学习编程最可怕的事情就是:每天写一遍Hello World并感觉收获满满。

接下来,快速入门Python。

1 环境配置与基本运算

正所谓天下武功、唯快不破。学Python,讲求的就是一个快字。

尽管下载Python并安装并不麻烦,但新手往往会在使用过程中出现各种让人费解的问题。所以,如果想1小时入门,我推荐这个。

 在线Jupyter编辑工具,进入之后,点击中间的Try JupyterLab,就可以进入在线Notebook的界面。

Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_数据结构

点击Python3,快速进入jupyter notebook的环境。然后按照直觉,写一些四则运算表达式,例如这些:

x = 100
y = 50
z = 2.5
print(x + y * z)
print(x - y / z)
print(x * y**2)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

然后同时按下Ctrl+回车,就能运行python代码。

Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_开发语言_02

然后按下alt+回车,开启下一段代码。

如果用shift+回车,则会综合上面的两个功能,本节耗时:3分钟。

如果觉得在线Jupyter工具不好用,还有这个 ideone,进入之后选择python,输完代码后选择run

Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_python_03

2 调用各种包

在python中,通过import来完成包的调用。例如,我想调用一个日历的包,然后打印日历

import calendar
calendar.prcal(2021,m=4) #2021年,每行4个月

  • 1.
  • 2.

然后shift+回车,就可以看到日历了。

Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_后端_04
如果想通过python进行科学计算,应用最多的包是numpymatplotlib中的pyplot,前者用于计算,后者用于绘图。通常二者被重命名为npplt。接下来演示一下二者的用法。

import numpy as np
from matplotlib import pyplot as plt

  • 1.
  • 2.

x = np.random.rand(100) #python中通过#进行注释
y = np.random.rand(100) #用于生成100个随机数
plt.scatter(x,y) #绘制散点图,并存放在内存
plt.show() #调用内存中的图,show给我们

Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_后端_05

本节需要记住的单词importasnumpymatplotlib.pyplotrandom.randscatterplt.show

本节耗时:5分钟。

3 判断、循环

如果想统计刚刚新建的xy中,有多少大于0.5,那么方法很简单,:新建两个变量用于存储二者的个数,然后跑一个循环进行判断。

xNum = 0
yNum = 0
for i in range(100):
if x[i]>0.5:xNum += 1 # xNum += 1 即 xNum = xNum + 1
if y[i]>0.5:yNum += 1 # python中通过方括号进行索引
print(xNum,yNum)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

可以把range(100)理解为0到99这100个数组成的一个集合,for i in range(100)意味着i对这个集合进行遍历,遍历就是逐个复制给i,所以就完成了循环。

在python中,判断、循环结构通过:与其内容进行分隔,且子代码块需要通过空格进行标记。如果程序块中只有一行代码,则可以直接写在:后面。

如果想知道,x中处于 ( 0 , 0.3 ] , ( 0.3 , 0.6 ] , ( 0.6 , 1 ] ( 0 , 0.3 ] , ( 0.3 , 0.6 ] , ( 0.6 , 1 ] ( 0 , 0.3 ] , ( 0.3 , 0.6 ] , ( 0.6 , 1 ] (0,0.3 ], ( 0.3 ,0.6] , ( 0.6,1](0,0.3],(0.3,0.6],(0.6,1](0,0.3],(0.3,0.6],(0.6,1] (0,0.3],(0.3,0.6],(0.6,1](0,0.3],(0.3,0.6],(0.6,1](0,0.3],(0.3,0.6],(0.6,1]这三个区间的数分别是多少,则需要用到if..elif

n1,n2,n3 = 0,0,0 #按照直觉理解即可
for i in x:
if i>0.6 : n3 += 1
elif i>0.3 : n2 += 1
else: n1 += 1
print(n1,n2,n3)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

for..in的作用是遍历某个集合,而x本身也是一个集合,所以也可以接受遍历。

本节需要记住的单词if, else, elif, for, +=,,耗时5分钟。

4 函数

如果想反复统计一组随机数的分布情况,显然不能每次都写一遍那么老长的代码,而是应该把代码封装到一个函数里面。

def statis(x):
xNum = 0
for i in x:
if i>0.5:
xNum += 1
return xNum

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

在Python中,通过def新建一个函数,函数名字后的括号里是这个函数需要输入的变量。最后通过return来返回一个值。如果按照数学的那种表达式,以上代码差不多类似xNum=statis(x)这样的感觉。

在建了一个函数之后,就可以调用了,本节用时5分钟,需要记住defreturn

Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_字符串_06

5 数据结构

我们刚刚说x是集合,这是不准确的。数学上的集合要求不能有重复元素,但x是随机生成的一个数组,所以并不能保证这一点。

在本节,我们要弄懂python中最常用的5种数据结构:元组、列表、字典、集合、数组,同时要掌握python推导式,预计耗时15分钟。

tpl = (1,2,3,4) #此为元组tuple
lst = [1,2,3,4,5] #此为列表list
dct = {"a":1, "b":2, "c":3} #此为字典dict
st = {1,2,3,3} #此为集合
arr = np.array([1,2,3,4]) #此为数组

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_字符串_07

可以看到,尽管我们在新建集合的时候给了1,2,3,3,但集合中没有重复元素,所以只剩下一个3。

一句话区分这五种类型:

  • 只有数组np.array可以计算
  • 字典通过键值对(key-value)进行索引
  • 集合无重复元素,且不可索引
  • 元组可以作为字典的键,列表则不能。

这五种数据类型的详细区别如下(这个其实用不着记)。

索引方式 可计算 可哈希 元素可重复 指针式
tuple tpl[0] *
list lst[0] *
dict dct["a"] **
set *
np.array arr[0]

其中,可哈希暂时可理解为能够作为字典的key。

所谓指针式是我乱取的一个名字,意思是可以像指针一样把元素取出来。其中,集合与字典因为元素不可重复,所以并没有什么变化。
Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_数据结构_08

至于可计算就比较容易理解了,例如+测试,字典和集合干脆就报错了,而元组、列表将+重载为合并,只有arr执行了加法操作。

Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_开发语言_09
在python中,可通过len来获取这些数据结构的长度。

6 字符串

在字典中我们其实已经用过了字符串,在python中,用单引号或双引号来代表字符串,二者是等价的。

x = 'abc'
y = "abc"
print(x==y)

  • 1.
  • 2.
  • 3.

因为引号被用于字符串的标志,所以如果想在字符串中输入引号,则需要转义,转移符号为\。又因为\用于转义,所以\也需要转义。

print('\'')
print('\\')
print("\"")

  • 1.
  • 2.
  • 3.

7 回到本地

下载 python,或者下载 anaconda

如果下载之后,可通过win+r,输入cmd进入命令行,输入python进入python环境。

如果下载的是python,则通过pip isntall numpy安装numpy,总之其命令格式为pip install XXX;如果下载的是anacoda,则还可以通过conda install numpy来进行安装——当然,anaconda的基本环境已经安装了大部分常用包。

如果把python的代码封装到一个.py格式的文件中,然后就可以通过python XX.py进行调用,并执行。

8 命令行版2048小游戏

按理说看到这里,并写到这里,就应该算是完成了入门,那么接下来就要用入门学会的知识,写一个命令行版的2048小游戏。

2048的逻辑无非是操作4x4的方格,每个方格中有一个数,我们可以操作这些数字进行移动,如果两个相同的数字在我们的操作下相撞了,那么它们就可以合并了。

而这个4x4的方格,无非是一个矩阵。

我们的操作可以理解为输入字符,用wsad代表上下左右,y代表确定,n代表取消。

python接收字符的函数是input,例如

>>> x = input("input a number")
input a number5
>>> x
'5'

  • 1.
  • 2.
  • 3.
  • 4.

而创建矩阵,可以用np.zeros([4,4]).astype(int),表示创建一个 4 × 44 × 44 × 4 4 × 4 4\times44×4 4×44×44×4的全0矩阵,并化为整形。

矩阵中只有16个元素,尽管循环效率低下,但足以满足人的操作速度了。

如果读者从头到尾敲了所有的代码,那么如今必然有能力独立写出这样的程序。所以具体的代码将在下篇文章给出。

此之谓入门,其标准是,在不计效率的情况下,可以使用这门语言实现一个不太复杂的功能。

当然,这个不计效率也不是毫无原则的不计,比如我可以1小时搞定,那么刚入门的新手需要1天甚至2天,他将需要大量的时间去查库查类查函数,但绝不至于用上一周半周的。

我从来都没学过python,当年只是受够了Matlab,而想把一个用Matlab写的类转成其他语言,结果用了一周,就把一个涵盖图像处理、数据拟合等功能的一千来行Matlab代码顺利转成了Python。过了没几年,Matlab就对我们禁用了,可见当年的选择是极为英明的。

那么如今让我重写一遍那个类,大概只需要一天不到。这就是新手和老手的区别,但也仅仅是新手和老手的区别。

从入门到熟练运用,需要的不是什么思维的提升,而仅仅是是一个字——,或者更直观地说,就是看代码量。从这个意义上来说,越快入门,就可以更早地堆积代码量,从而更早地熟练运用Python,而不是按部就班地从入门到放弃。学习编程最可怕的事情就是:每天写一遍Hello World并感觉收获满满。

接下来,快速入门Python。

1 环境配置与基本运算

正所谓天下武功、唯快不破。学Python,讲求的就是一个快字。

尽管下载Python并安装并不麻烦,但新手往往会在使用过程中出现各种让人费解的问题。所以,如果想1小时入门,我推荐这个。

 在线Jupyter编辑工具,进入之后,点击中间的Try JupyterLab,就可以进入在线Notebook的界面。

Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!_数据结构

点击Python3,快速进入jupyter notebook的环境。然后按照直觉,写一些四则运算表达式,例如这些:

x = 100
y = 50
z = 2.5
print(x + y * z)
print(x - y / z)
print(x * y**2)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
版权声明
本文为[支付宝云生态技术]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15295057/4373029

  1. Python code reading (Chapter 14): List Union
  2. Lecture du Code Python (article 25): diviser les chaînes multilignes en listes
  3. Python self study notes -- operators
  4. Formation python - différences entre http et HTTPS
  5. Implementation of automatic timing comment function on Python CSDN platform
  6. python+tkinter+treeview子控件快捷键
  7. Raccourcis clavier pour les sous - contrôles Python + tkinter + treeview
  8. Analyse des données Python
  9. python+tkinter+treeview子控件快捷鍵
  10. Devine si je peux attraper Maotai avec la programmation python? Tout est ouvert à github
  11. À propos de pygame.display.set in Python Un petit problème avec mode ()
  12. Implementation of automatic timing comment function on Python CSDN platform
  13. python:dataframe进行iteritem遍历时如何将输出结果按照列分别输出为该列最后一行
  14. python:dataframe進行iteritem遍曆時如何將輸出結果按照列分別輸出為該列最後一行
  15. Python: comment le dataframe affiche les résultats de sortie par colonne à la dernière ligne de la colonne lors de la traversée de l'itemitem
  16. Écrivez un gadget de bureau pour votre fille préférée en python et elle dit que c'est génial!
  17. Introduction to closures in Python 3
  18. Global / nonlocal usage in Python 3
  19. Introduction to context manager in Python 3
  20. Python crawler selenium framework. You can start with these five questions | Python skill tree
  21. Common standard library random, python introductory tutorial 5 or 6 questions a day | Python skill tree
  22. It is said that Python is omnipotent. It's really good to see Liyang photography circle with Python this time
  23. 【Python 爬虫】 4、爬虫基本原理
  24. 【Python 爬蟲】 4、爬蟲基本原理
  25. 【 Python crawler】 4. Principes de base du crawler
  26. 这道python题到底应该要怎么做
  27. Que doit faire exactement ce problème Python
  28. Après l'importation des variables du module Python, les valeurs imprimées sont fixes.
  29. Nouveau singe Muzi Lee: 0 cours de formation Python de base types de hachage pour les opérations Python redis
  30. Looking at problems from a fresh perspective: analyzing selenium principle from the perspective of Python
  31. Insérez le format de date dans la base de données MySQL en python et ne l'exécutez pas.
  32. Try Python 3.10 with CONDA
  33. Répondez en python et demandez à quelqu'un de vous aider.
  34. Un simple problème de travail Python, qui ne fonctionne pas
  35. Problèmes d'écriture Python pour la boucle
  36. Comment Python exécute les commandes du programme à plusieurs reprises au lieu de quitter
  37. YYDS! Dexplot: one line of Python code to easily draw statistical charts!
  38. pandas生成的透视表如何和源数据一起保存
  39. pandas生成的透視錶如何和源數據一起保存
  40. Comment sauvegarder le tableau pivot généré par pandas avec les données sources
  41. 10 fois plus efficace avec cache dans le développement de Django
  42. 求Python *.svg文件操作方法
  43. 求Python *.svg文件操作方法
  44. Trouver la méthode de fonctionnement du fichier Python *.Svg
  45. 【 python】 Internal Guide for Unit Test Practice
  46. 用Python编程佩尔数列pell数列循环结构
  47. 【 python】 échafaudage fastapi: spécification du développement du projet d'interface arrière fastapi
  48. [Python] restful Specification Practice Based on fastapi
  49. Python代码阅读(第26篇):将列表映射成字典
  50. How to use Python to make a screen color extractor with Exe file
  51. Lecture du Code Python (article 26): cartographie des listes dans les dictionnaires
  52. Python代码阅读(第26篇):将列表映射成字典
  53. Python代碼閱讀(第26篇):將列錶映射成字典
  54. Lecture du Code Python (article 26): cartographie des listes dans les dictionnaires
  55. 使用 Python 进行数据可视化之Seaborn
  56. Real time access to stock data, free—— Python crawler Sina stock actual combat
  57. Seaborn pour la visualisation des données en python
  58. 浅识XPath(熟练掌握XPath的语法)【python爬虫入门进阶】(03)
  59. Python中if else语句进行操作的时候哪里除了错,搞不懂
  60. Python题,我刚学,还不会