python3.8.6和VScode的安装
我的电脑已经安装过了,就不重复安装了,这里从csdn上找几篇文章里面的图片,给大家简述一下流程。
Python有自己专属的IDE------PyCharm,不过我电脑上已经安装了VSCode,所以就用VSCode来开发了,而且自己也习惯这种黑色了,是的,这是一种深沉的黑色,Just like me ...
进入python网站:Python Releases for Windows | Python.org这里直接给出适用于Windows的python网站了
如果整个过程较慢,请百度如何科学上网......
一共五步,记得勾选自动添加环境变量,除非你想手动配置
python3基础语法
太简单的东西就不赘述了,我的建议是菜鸟编程,这里附上网址。Python3 教程 | 菜鸟教程 (runoob.com) 下面重点说一下掌握C/C++之后,如何快速学习python。
我前两天刚开始写python时,我的内心:这东西怎么写起来这么别扭呢???
现在:python也叫编程语言??小小python,直接拿下!
当你粗略浏览任何一本关于python的书或者是教程,你会发现相比于C/C++这种语法要求严格的编程语言,python显得非常灵活甚至是随意,只用缩进就表达了语句的作用域。同时,python还省去了类型说明而是让系统自己去识别,这类似C++中的auto关键字,而在python中,auto关键字都不用写,这简直太爽了,所有代码都是为了逻辑实现,高效开发到了极致,学习门槛也低到了极致。
我这两天工作因要帮助隔壁项目组做大数据分析,临时学习了这门语言并感受到了它的强大。丰富的开源库和简单的使用方式,让一切程序开发都变得简单,这些库适用于不同的场景。python牛逼,开源精神牛逼!
对于大多数同学来说,接触的第一门编程语言一般是C/C++,这部分就简述C/C++和python的区别,让读者快速掌握python基础。
C/C++和python的区别
C语言面向过程,而Python和C++都是面向对象的。
Python是脚本语言,脚本语言不需要编译,直接解释执行,由解释器来负责解释。程序代码即是脚本程序,也是可执行文件,只需要编写-运行。 C/C++是编译型编程语言,需要编译成二进制代码,以可执行文件形式运行,需要经过编写-编译-链接-运行的过程。
先来hello world 一下,谁复杂,谁简单,一眼便知
python:
bash
# python中使用#进行单行注释
print("hello world\n")
C:
arduino
#include <stdio.h>//引入头文件
int main()//主函数入口,C/C++标准中规定了main函数不能使用void作为返回类型
{
printf("hello world\n");
}
这里提一点,如果有同学在学习单片机时遇到void main () {}
的情况,记得注意一下,这是错误的
C++:
arduino
#include <iostream>//引入头文件
using namespace std;//引入命名空间
int main()
{
cout<<"hello world\n";
//std::cout<<"hello world\n";//如果不使用命名空间,则必须使用std作用域
}
python | C/C++ |
---|---|
import cmath 导入模块,每一个.py文件都可以认为是一个模块。Python中导入的模块可以是类的定义,函数的定义 | #incluce 引入头文件,头文件为类或函数的声明。C++支持分离式编译,对源文件分别编译成目标文件,再链接生成可执行文件。通过头文件把源文件关联起来。 |
不需要声明数据类型,系统自动识别 | 需要声明,数据类型代表内存分配,要求严格 |
一切皆对象(数据类型、函数、类都是对象)。对象包含identity(Python中即为对象的内存地址,一旦创建不再改变)、类型信息、值、引用计数(用于记录当前有多少个变量在引用这个对象。一旦引用计数器为0,那么该对象就会被系统自动回收) | 一块能存储数据并具有某种类型的内存空间 |
每一行都是单独的语句,不需要分号作为结束的标志。当一行语句需要分开时,用 \连接,在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \,系统会自动识别 | 需要分号作为语句结束的标志 |
用 : 和缩进来表示作用域 | 用( )和{ }表示作用域 |
注释用#和''',vscode中的快捷键是 ctrl + / | 注释用//和/* */ |
没有引用 | 有引用&,&运算符重载,既可以代表引用,又可以代表取地址,视语境决定 |
没有指针,万物皆对象,通过解运算符使用类的方法 | 指针就是C/C++的灵魂,有点复杂 |
python中的数组叫列表list,而列表中的数据类型可以不同,所以严格意义上来说,列表并不等同于C/C++中的数组 | 数组必须声明元素个数或者直接赋值,目的是确定数组占用的内存大小,数组不能动态分配内存,数组的元素类型必须相同,比如有整形数组、浮点型、指针数组等,这里还涉及到内存对齐的问题,就不过多赘述 |
单引号和双引号都能表示字符串和字符,差别不大 | 单引号表示字符,双引号表示字符串 |
python中的重要特性
缩进
python
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False") # 缩进不一致,会导致运行错误
这里补充一嘴,print ("False")
要么就别缩进,要么就和上面的语句保持一致,缩进多了、少了,都会出错,所以说,不要站在尴尬的位置,不然没人要...
单引号、双引号、三引号
Python中单引号,双引号,3个单引号及3个双引号的区别_python 单引号 双引号 区别-CSDN博客
博主写的很好,我就不多说了,抛砖引玉即可
字符串运算符
控制流
切片(顾头不顾尾)
这个示例来自菜鸟教程,我们在这里分析一下,感受切片这个功能的强大。
上面说Python中万物皆对象,我们现在就把一个字符串当成一个对象,现在给这个对象来一刀(怎么感觉怪怪的...)是不是就把它劈成两半了?(好像更怪了...)而Python中更狠,给对象一刀劈了三瓣,这里的冒号就是一把刀,在冒号左侧的数字处劈了一刀,右侧数字处又劈了一刀,留下了中间那部分,如果没有数字,那就说明没劈,这样就保留了头部(或者尾部,或者头部和尾部...)
不过还要注意list的下标从0开始,所以左侧是2的话,说明从第三个开始输出,当然你要是认为在第二个之后劈了一下,然后0、1、2全扔了,保留了第三个和后面的元素,那也行,可谓是不谋而合!这种想法其实更不容易出错。 print(str[2:5]) # 输出从第三个开始到第六个的字符(不包含)
以这行代码为例,在第二个之后劈了一下,在第五个之后劈了一下,留下的是第3、4、5,一共三个元素
如果有步长要求,可以理解为在保留下来的那部分里面又选取了一次
如果用反向索引,看现在这个例子,在第一个元素之后劈了一刀,在倒数第二个元素之前劈了一刀,注意这里是之前,而不是之后。慢慢体会吧~
list = ['Google', 'Runoob', "Zhihu", "Taobao", "Wiki"]
list[1:-2]: ['Runoob', 'Zhihu']
这样一看,切片是不是就相当于把for循环直接写进[:]中了??真是很有想象力的创造
列表list
大家有没有发现,python中的list非常像C++中的vector,因为他们有类似的方法,但list又方便在不同元素的类型可以不同
反向索引:(图源菜鸟编程)
先说明一下,图片中的tup1是元组。Python 的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号 ( ),列表使用方括号 [ ]。
观察图片,正向索引从0开始,反向索引从-1开始。这个反向索引就非常方便了,我们之前在C/C++是不能直接找到数组中倒数的某个元素的,必须先计算得到数组存放了多少元素,python中就省去了这一步。
字典:
Python内存管理与垃圾回收机制
python自动化
添加配置文件,快速下载各种开源库
我们之前提到,python牛逼就牛逼在它丰富的使用场景,而这一点就来自于各种强大的丰富的开源库。这部分python自动化使用的著名的数学库Numpy和Pandas
我们先安装Pandas库,一般大家在初次安装时都会出现报错的情况。图源自csdn
这里简述一个一劳永逸的方法。
pip.txt文件中的内容如下,这里使用的清华源的镜像,大家用阿里、中科大的都行
ini
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
完成这项配置后就可以快速安装各种开源库了。