文章目录

  • 1 环境配置与基本运算
  • 2 调用各种包
  • 3 判断、循环
  • 4 函数
  • 5 数据结构
  • 6 字符串
  • 7 回到本地
  • 8 命令行版2048小游戏

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

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

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

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

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

接下来,快速入门Python。

1 环境配置与基本运算

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

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

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

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

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

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

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

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

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

2 调用各种包

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

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

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


如果想通过python进行科学计算,应用最多的包是numpymatplotlib中的pyplot,前者用于计算,后者用于绘图。通常二者被重命名为npplt。接下来演示一下二者的用法。

import numpy as np
from matplotlib import pyplot as plt

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

本节需要记住的单词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 + 1if y[i]>0.5:yNum += 1   # python中通过方括号进行索引
print(xNum,yNum)
可以把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 += 1elif i>0.3 : n2 += 1else: n1 += 1
print(n1,n2,n3)
for..in的作用是遍历某个集合,而x本身也是一个集合,所以也可以接受遍历。
本节需要记住的单词if, else, elif, for, +=,,耗时5分钟。

4 函数

如果想反复统计一组随机数的分布情况,显然不能每次都写一遍那么老长的代码,而是应该把代码封装到一个函数里面。
def statis(x):xNum = 0for i in x:if i>0.5:xNum += 1return xNum
在Python中,通过def新建一个函数,函数名字后的括号里是这个函数需要输入的变量。最后通过return来返回一个值。如果按照数学的那种表达式,以上代码差不多类似xNum=statis(x)这样的感觉。
在建了一个函数之后,就可以调用了,本节用时5分钟,需要记住defreturn

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,3,但集合中没有重复元素,所以只剩下一个3。
一句话区分这五种类型: 
  • 只有数组np.array可以计算
  • 字典通过键值对(key-value)进行索引
  • 集合无重复元素,且不可索引
  • 元组可以作为字典的键,列表则不能。
这五种数据类型的详细区别如下(这个其实用不着记)。 
索引方式 可计算 可哈希 元素可重复 指针式
tuple tpl[0] *
list lst[0] *
dict dct["a"] **
set *
np.array arr[0]
其中,可哈希暂时可理解为能够作为字典的key。
所谓指针式是我乱取的一个名字,意思是可以像指针一样把元素取出来。其中,集合与字典因为元素不可重复,所以并没有什么变化。 
至于可计算就比较容易理解了,例如+测试,字典和集合干脆就报错了,而元组、列表将+重载为合并,只有arr执行了加法操作。
 在python中,可通过len来获取这些数据结构的长度。

6 字符串

在字典中我们其实已经用过了字符串,在python中,用单引号或双引号来代表字符串,二者是等价的。
x = 'abc'
y = "abc"
print(x==y)
因为引号被用于字符串的标志,所以如果想在字符串中输入引号,则需要转义,转移符号为\。又因为\用于转义,所以\也需要转义。
print('\'')
print('\\')
print("\"")

7 回到本地

下载python,或者下载anaconda。

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

如果下载的是python,则通过pip install 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'
而创建矩阵,可以用np.zeros([4,4]).astype(int),表示创建一个4 × 44 × 44 × 4 4 × 4 4\times44×4 4×44×44×4的全0矩阵,并化为整形。
矩阵中只有16个元素,尽管循环效率低下,但足以满足人的操作速度了。
如果读者从头到尾敲了所有的代码,那么如今必然有能力独立写出这样的程序。所以具体的代码将在下篇文章给出。

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

  1. 运维学python用不上_作为运维你还在想要不要学Python,看完这篇文章再说!

    原标题:作为运维你还在想要不要学Python,看完这篇文章再说! 本文由马哥教育Python自动化实战班5期学员推荐,转载自简书,作者为Li.Yingjie,内容略经小编改编和加工,观点跟作者无关,最 ...

  2. python支持esc退出_听说你不会用mac电脑装Python?看了这篇文章,秒懂!

    有很多学员,来咨询老师mac下的环境安装,于是小简老师就出了这篇文章. 如果你是mac电脑,那么本文是非常全面的python环境安装指南,引领你在MAC下玩转python. 第一部分 mac自带py2 ...

  3. 零基础学python,看完这篇文章,你的python基础就差不多了!干货【1】

    2019独角兽企业重金招聘Python工程师标准>>> Python基础语法和面向对象(下一篇分享面向对象) Python基础语法 1. 认识Python 1.1 Python 简介 ...

  4. python运算符中用来计算整商的是什么_零基础学python,看完这篇文章,你的python基础就差不多了...

    Python基础语法 1. 认识Python 1.1 Python 简介 Python 的创始人为吉多·范罗苏姆(Guido van Rossum). Python 的设计目标: 一门简单直观的语言并 ...

  5. Flink入门看完这篇文章就够了

    文章目录 第一章:概述 第一节:什么是Flink? 第二节:Flink特点? 第三节:Flink应用场景? 第四节:Flink核心组成 第五节:Flink处理模型:流处理和批处理 第六节:流处理引擎的 ...

  6. python装饰器原理-看完这篇文章还不懂Python装饰器?

    原标题:看完这篇文章还不懂Python装饰器? 1.必备 2.需求来了 初创公司有N个业务部门,1个基础平台部门,基础平台负责提供底层的功能,如:数据库操作.redis调用.监控API等功能.业务部门 ...

  7. 看完这篇文章,你的Python基础就差不多了(附571集精品教程)

    学一门语言贵在坚持用它,不用就淡忘了,而记录下一篇文章也有助于日后快速回忆.全文分为两大部分,分别是Python基础语法和面向对象. 入门Python其实很容易,但是我们要去坚持学习,每一天坚持很困难 ...

  8. java与python难度对比_Python和Java的区别,看完这篇文章你就清楚啦

    众所周知,在数不清的编程语言中Java自诞生之日起长盛不衰,可谓是神话般的存在.随着人工智能时代的到来,Python迅速席卷全球,作为当下最热门的编程语言,因其简单实用且应用场景广泛备受青睐. 一个是 ...

  9. 从入门到精通,看了这篇文章,你离老黑的路就不远了

    关于被入侵 简单说明: 经常有帖子说:"我中xx木马啦,怎么办?"."我的windows有问题,是不是被入侵啦?"等等.通用的做法是查看可疑进程(win98需要 ...

最新文章

  1. 深入理解Linux软件包的配置、编译与安装
  2. wxWidgets:显示 wxTreeListCtrl 的示例
  3. AMIO编辑器开发(三):转向C++,月底遇到第二个瓶颈
  4. 百度地图标点点击变色_《和平精英》版本爆料第三弹:雪地洞穴开启!组队标点功能升级~...
  5. javascript权威指南(2)
  6. 3.9 神经网络的梯度下降法
  7. list 分页_mybatis一对多分页查询
  8. zoj 2966 Build The Electric System
  9. Ubuntu 12.04重启后丢失resolv.conf问题
  10. 如何关闭flashhelper的ff新推荐广告弹窗
  11. QT出现“d:\Program Files (x86)\SogouInput\Components\”的错误分析
  12. PHP将swf转为gif,swf怎么转换成gif 怎么把swf转换成gif
  13. 培养创造性思维的20个方法
  14. Rstudio永久修改当前工作路径
  15. 无法从服务器中获取信息吗,无法从服务器获取信息
  16. Micro Surface Pro 鼠标一直闪烁的问题
  17. 磁盘,分区,文件系统
  18. 计算机考试如何使用电脑上的计算器
  19. 1.2(redis)5大数据结构
  20. 《零起点,python大数据与量化交易》

热门文章

  1. 学生学籍管理系统源码:Springboot+VUE
  2. ROS节点中创建msg和srv文件(kinetic/melodic)
  3. 分享一个seo超级外链发布网站
  4. python 的emulate函数封装_用模拟执行实现Objective-C代码自动化分析
  5. 使用IIS 5.0调整Web服务器的艺术与科学
  6. 数字化变革的难点和解决方式
  7. 【系】微信小程序云开发实战坚果商城-云开发之首页数据实现
  8. Vivado点击“Schematic”无法打开查看布局布线图
  9. 提高工作效率的黑科技软件和网站
  10. 华为交换机配置dhcp中继