Day1----Python学习之路笔记(1)
学习路线
Day1 Day2 Day3 Day4 Day5 ...待续
一、了解开发语言
1、高级语言:Python,Java,C++,C#,PHP,JS,Go,Ruby,SQL,Swift,Perl,Objective-C,R等等;
2、低级语言:C语言、汇编;
PS:为了好分类,这里说的高级、低级不是说语言本身的高低级,高级语言更抽象化,更靠上层,低级语言更靠计算机底层硬件,所有的高级语言内部都是依赖C语言来实现的。高级语言---->背后是C语言---->背后是汇编(0101机器码)---->机器执行
3、字节码和机器码
1>字节码由高级语言转换生成;
2>机器码是计算机硬件能够直接运行的。
二、各语言之间的对比
1、以上说的高级语言大致可以分为以下两大类:
1>PHP类:只适用于写网页,有局限性;
2>Python、Java等类:既可以写网页,也可以写后台功能(业务软件等)。
-Python:执行效率比Java低,但开发效率高;
-Java:执行效率比Python高,但开发效率低;
-语言和语言之间速度之类的差异其实很小,关键在于你是否有一个优秀的程序员,一个优秀的程序员他用Python写的程序,也比一般的程序员用Java写的程序运行速度更快,更稳定。
2、只要做程序开发,如果想深入,想不断上升,以后一般来说一定要自学C语言,因为它是其他高级语言的基础。
三、Python的种类
1、Python最近越来越火,有很多公司都尝试着结合自己公司语言推出各个公司自己的Python版本,比较常见的有CPython、JPython(Java Python)、JavaScriptPython、RubyPython、IronPython、PyPy等等。在上面这些Python版本种类中,我们一般选择CPython来学习,下面这张图就说明了为什么:
2、PyPy,这是用CPython开发的Python版本,相当于CPython的升级版,它的执行速度比Python快很多(其实是第一次执行没这么快,但是第二次及以后就很快了,原因是第一次代码执行,转换后的运行机器码PyPy会拿在手上,下次运行就直接机器码去运行,而Python拿在手上的是字节码,每次运行还得转换成机器码运行)
-速度方面:PyPy > CPython > JPython、RubyPython这一类;
-但是,PyPy现在还不够稳定,还不是主流,现在的主流仍然是用CPython;
-以后我们可以用CPython写好代码,然后装一个PyPy把代码扔给他执行就行了。
四、Python安装
1、下载安装软件
1.1 下载
-官网:https://www.python.org/downloads/
-Python2:在继续更新(使Python2越来越靠近Python3, 2020停止支持)。
-Python3:一直在更新,我们现在学习Python就下载Python3版本。
1.2 安装
-Windows:无脑点,安装时记得勾上为Python创建环境变量,省得后面自己配。
-Linux:新版本的Linux发行版本一般都是自带Python2的,比如CentOS 7(Ubuntu 18.04自带的Python3),如果没Python3.X的可以再装一个3.X的版本(两个版本同时存在要配置一下,不然yum会报错,CentOS 7上的配置过程我在另一个随笔里写了http://www.cnblogs.com/shwee/p/9015059.html)。
1.3 环境变量
-Windows系统里面安装刚才说了只要安装时勾上为其创建环境变量即可,Linux上面我在另一个随笔写了http://www.cnblogs.com/shwee/p/9015059.html。
2、Python安装在系统上
2.1 执行操作
-写一个文件,文件中按照Python的规则写,将文件交给Python软件,读取文件中的内容,然后进行转换和执行,最终获取结果
-Python软件---->Python解释器(做内存管理)
3、Python基础知识
3.1 第一句Python
-后缀名可以是任意的(这就是为何叫python解释器)
-导入模块时,如果不是.py文件会报错
===>所以以后文件名统一都写成.py的形式
3.2 两种执行方式
-Python解释器 .py文件路径
-Python IDLE 进入解释器交互界面:实时输入并获取执行结果
-Linux系统下:
-文件名运行 ./test.py
-文件内部头部要加上下面声明:#!/usr/bin/env python ----这一句是在Linux系统中特意需要的Python3解释器路径声明。
-接着在第二行加上: # _*_ coding:utf8 _*_ ----当然,用python3版本的解释器运行就不需要加这一句声明了,因为Python3版本默认的编码格式就是utf-8,而Python2不是默认utf-8编码格式。
-这两句如果要写,就要写在文件最开头的两行,且中间不能间插其他行进来,不然就不会生效了。
3.3 介绍一下编码格式
-最早的编码:ASCII,在美国产生,用八位来编码表示一个字符。
-后来各个国家都在使用计算机,都出台自己国家的编码格式,为了全球都能通用统一编码,国际统一搞出了个万国码:Unicode,为了国际通用,它是用16位以上(至少16位,也就是两个字节)的比特位来表示一个字符,但是这样的话每个不同的字符都是用16位以上的比特位来编写表示,但是就像ASCII编码上面的一个字符八位就可以表示了,所以这样有点浪费空间。
-所以后面又搞出个utf-8的编码格式,utf-8规定,一个字符能用多少位表示就用多少位,比如一个英文字母用8位表示,一个汉字用24位(3个字节)表示,不是像unicode上统一都用16位以上来表示,所以这样比较节省空间,而且又做到了全球通用。
-在Python3中,默认utf-8的编码格式,因此文件开头无需特别说明,但是Python2如果想要使用中文,就必须要做声明,不然显示会乱码;
-当然,如果写一个文件只有中文,用GBK,GBK-2312这样的国标码当然比较好。
五、开始Python学习
介绍完上面的东西,好了,我们来学习Python编写代码:
1、首先来认识变量名:
-在python中我们常用字母、数字、下划线来组合形成变量名,它们的组合有一定的规则,那就是数字不能作为变量名开头,变量名不能是python关键字,最好不要和python内部的东西(比如某个函数、方法的名字,例如sum([1, 2, 4, 5, 8]),用sum作变量名使用求和方法sum()时就不会生效)一样
-python中的关键字有:
help("keywords") #查Python关键字的命令 Here is a list of the Python keywords. Enter any keyword to get more help. False def if raise None del import return True elif in try and else is while as except lambda with assert finally nonlocal yield break for not class from or continue global pass
-变量名可以是生活的写照,尽量让变量名起得有意义一些,比如用户的id信息,我们可以用user_id来表示,比如我们在编程中要经常用到一句话,我们可以定义变量名:str_u = '从你的全世界路过' ,等等
2、程序员第一句,让计算机输出显示一句“你好,Python!”
# !/usr/bin/env python # -*- coding: utf-8 -*- print('你好,Python!') 输出结果:你好,Python!
3、接下来我们来看看基本数据类型:
3.1 <字符串>
-字符串我们要用引号引起来,这样Python解释器程序一读到这一句话,碰到引号引起来的内容,他就会把引号里面的东西(全部)当做字符串处理,当然在Python中,单引号,双引号,三引号等都能识别,如下:
name = '我是shw' name = "我是shw" name = '''我是shw''' name = """我是shw"""
-当然在python中字符串可以直接做加法:
n1 = "shw" n2 = "nb" n3 = n1 + n2 print(n3) 输出结果:shwnb
-也可以做乘法:
n1 = "shw" n2 = n1 * 3 print(n2) 输出结果:shwshwshw
3.2 <数字>
-在Python中我们可以做数字的数学运算(加减乘数,取商取余):
n1 = 30 n2 = 4 n3 = n1 + n2 #加法 n4 = n1 - n2 #减法 n5 = n1 * n2 #乘法 n6 = n1 / n2 #除法 n7 = n1 % n2 #取余数 n8 = n1 //n2 #取商 print(n3, n4, n5, n6, n7, n8) 输出结果:34 26 120 7.5 2 7
4、学习条件语句
4.1 if条件基本语句
#例一 if 条件: 内部代码块1 内部代码块2 else: ... print('-----end------') #例二 if 条件: pass #什么都不执行,过的意思 print('-----end------')
4.2 if语句的嵌套
if 条件: if 条件: if 条件: if 条件: ... else: else: else: else:
4.3 多条件判断if语句
if 条件: 代码块 elif 条件: 代码块 elif 条件: 代码块 else: ...
PS:在Python中用强制缩进(四个空格)来区分代码块,其他语言比如Java是用{}来区分,比如:
if 条件{ 代码块 }
5、循环语句
5.1 死循环
#死循环,一直输出ok while 1==1: print('ok')
5.2 条件循环
#条件循环,屏幕输出十次ok count = 0 while count < 10 print('ok') count = count + 1 print('------over------')
六、练习题
涉及if条件语句,while循环语句,奇偶数,数字运算,变量定义等
1、使用while循环输出1、 2、 3、 4、 5、 6、 8、 9
n = 1 while n < 10: if n == 7: pass else: print(n) n = n + 1 print('------over------') 输出结果: 1 2 3 4 5 6 8 9 ------over------
2、输出1~100的所有奇数
n = 1 while n < 101: temp = n % 2 if temp == 0: pass else: print(n) n = n + 1 print('------over------') 输出结果: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 ------over------
3、求1~100的所有数的和
n = 1 s = 0 while n < 101: s = s + n n = n + 1 print('sum = ', s) print('-------over------') 输出结果: sum = 5050 -------over------
4、输出1~100的所有偶数
n = 1 while n < 101: temp = n % 2 if temp == 0: print(n) else: pass n = n + 1 print('------over------') 输出结果: 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 ------over------
5、求1-2+3-4+5-...+99-100的所有数之和
n = 1 s = 0 while n < 101: temp = n % 2 if temp == 0: s = s - n else: s = s + n n = n + 1 print('sum = ', s) print('-------over------') 输出结果: sum = -50 -------over------
下一篇: 整数编码