zoukankan      html  css  js  c++  java
  • 21天Python入门必备第一章

    21天Python入门必备第一章

    课程介绍

    image.png

    image.png

    Python与其他语言的区别

    java 再90年代 跨平台语言,操作系统(windows ,unix 、linux)

    • CC++:学习成本高,学习周期长,偏系统底层,在开发硬件驱动、散入式、游戏引擎开发等领城有广的应用
    • JAVA:日前使用最广这的编程语言,第一个跨平台运行的语言,在大型ERP软件开发安卓APP开发网站开发领或使用广之
    • PHP:使用最广的WEB开发语言,非常适合中小型网站开发,学习成本较低,开发效辛高。
    • PYTHON:使用领或几乎和JAVA一样广这,但开发效辛要高于JAVA,且学习成本较低,在料学运算教据分析网站开发爬虫开发云计算八自动化运维自动化测试等领城优势明显、

    python 的生态圈

    • WB开发——最火的Python web框架Django,支椅异步高并发的Tormado框架,短小精悍的flask,botle,Django官方的标语把Django定义为the framework for perfectionist with deadlines(大意是一个为完全主义者开发的高效率web框架)
    • 人工智能——谁会成为Al和大散据时代的第一开发语言?这本已是一个不需要争论的问题。如果说三年前,

    Matlab、Scala、R、Java和Python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是前两天Facebook 开源了PyTorch之后,Python作为Al时代头牌语言的位置基本确立,未来的悬念仅仅是谁能坐稳第二把交椅

    • 云计算——目前最火最知名的云计算框架就是OpenStack,Python现在的火,很大一部分就是因为云计算
    • 金融量化分析、自动化交易——我个人之前在金融行业,10年的时候,我们公司写的好多分析程序、高频交易软件就是用的Pytho,到目前,Pythom是金融分析、量化交易领城里用的最多的语言
    • 爬虫——爬领域,Python几乎是霸主地位,ScrapyRequestBeautifusoapurib等,想爬啥就爬啥
    • 自动化运维——问问中国的每个运维人员,运维人员必须会的语言是什么?10个人相信会给你一个相同的答亲,它的名字叫Python
    • 料学运算一一你知道么,9升年开始,NASA就在大量使用Python在进行各种夏杂的科学运算,随着NumPy,Scipy,Matplotlib,Enthought librarys等众多程序库的开发,使的Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和料学计算领或最流行的商业软件Maflab相比,Pythow是一门通用的程房设计语言,比Malab所采用的脚本语言的应用范围更广之
    • 游戏开发——在网络游戏开发中Pythom也有很多应用,Python 非常适合编写1万行以上的项目,而且能影很好地把网游项目的规模控制在10万行代码以内。另外据我所知,知名的游戏<文明)就是用Python写的

    image.png

    就业前景

    image.pngimage.png
    image.png

    "Life is short,you need Python!"
    -Bruce Eckel
    C++Comitee member

    编程语言的介绍

    image.png

    image.png

    高级语言

    image.png

    高级语言编译类

    image.png

    高级语言解释型

    image.png
    image.png
    小结

    机器语言
    优点是最底层,速度最快,缺点是最复杂,开发效率最低
    汇编语言
    优点是比较底层,速度最快,缺点是复杂,开发效和最低
    高级语言
    偏译型语言执行速度快,不依奶语言环境运行,跨平台差
    解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行

    python介绍和发展史

    image.png
    吉多·范罗苏姆(Guido van Rossum)
    1989年的圣诞节期间,Guido开始写Python语言的编译器。Python这个名字,
    来自Guido所挚爱的电视剧Monty Python's Flying Circus。他希望这个新的
    叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,
    |易学易用,可拓展的语言。
    2005年加入谷歌至2012年,2013年加入Dropbox直到现在
    依然掌握着Python发展的核心方向,被称为仁慈的独裁者

    python 发展史
    1989年,Guido开始写Python语言的编译器。
    1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,
    函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
    Granddaddy of Python web frameworks,Zope 1 was released in 1999
    Python 1.0-January 1994增加了 lambda,map,filter and reduce.
    Python 2.0-October 16,2000,加入了内存回收机制,构成了现在Python语言框架的基础
    Python 2.4-November 30,2004,同年目前最流行的WEB框架Django诞生
    Python 2.5-September 19,2006
    Python 2.6-October 1,2008+
    Python 3.0-December 3,2008
    Python 2.7-July 3,2010
    Python 3.1-June 27,2009
    Python 3.2-February 20,2011
    Python 3.3-September 29,2012
    Python 3.4-March 16,2014
    In November 2014,it was announced that Python 2.7 would be supported until 2020,and reaffirmed that there would beno 2.8 release as users were expected to move to Python 3.4+as soon as possible
    Python 3.5-September 13,2015
    *Python3.6-2016-12-23发布python3.6.0版

    python解释器类型

    image.png

    CPython
    当我们从Python官方网站下载并安装好Python2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命
    令行下运行python就是启动CPython解释器。
    CPython是使用最广且被的Python解释器。教程的所有代码也都在CPython下执行。
    IPython
    IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多
    国产浏览器虽然外观不同,但内核其实都是调用了E。
    PyPy
    PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
    Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
    lronPython
    IronPython和Jython类似,只不过ronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码

    image.png

    Python安装和Hello World

    image.png

    用notepad++创建一个文件,输入以下代码
    prigt("Hello World!")
    print(“Python好简单呀,我要学好挣大钱!")

    保存为HelloWorld.py,注意.py后缀名的作用
    进入cmd命令行,执行python HelloWorld.py,看结果

    *注意文件名前面加python的原因是要把代码交给python解释器去解释执行

    Python交互器是主要用来对代码进行调试用的

    变量与变量的作用

    image.png

    计算机的主要作用之一是进行计算,用Python进行数值运算非常容易,跟我们平常用计算器一样简单

    image.png

    image.png

    程序实现
    你发现没有?你在最后在算总消费的时候直接用的是之前已经算好的中间结果,为什么这么做?都知道这样是为了避免重新再算一遍所有的数据。那在程序中呢?

    >>>print('eat',10+15+7+4+7+3)
    eat 46
    >>>print('cloth',20)
    cloth 20
    >>>print('traffic',6+6+6+6+6)
    traffic 30
    >>>print(精神”,300+300+400+200)
    精神1200
    >>>
    >>>
    >>>print('总消费,46+20+30+1200)
    总消费1296*
    
    

    image.png
    image.png

    变量定义规范

    声明变量
    name="Alex Li"
    image.png
    变量定义规则
    ·变量名只能是字母、数字或下划线的任意组合
    ·变量名的第一个字符不能是数字
    ·以下关键字不能声明为变量名[and,as','assert','break,'class,'continue','def,'del",'elif",'else','except,'exec',‘finally,'for','from','global',if",'import','in',is,lambda,'not','or','pass,'print,'raise','return,'try,'while','with','yield]

    驼峰体
    Age0f0ldboy=56
    NumberOfStudents=80
    下划线
    age_,of_oldboy=56
    number_of_students=80
    官方推荐用哪种?

    定义变量的Low方式

    • 变量名为中文、拼音
    • 变量名过长
    • 变量名词不达意

    image.png

    常量

    常量即指不变的量,如pai 3.141592653..,或在程序运行过程中不会改变的量
    在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量

    AGE_OF_OLDBOY=56

    在c语言中有专门的常量定义语法,const int count=60;一旦定义为常量,更改即会报错

    用户交互和注释

    读取用户输入
    name=input("What is your name?")
    执行脚本就会发现,程序会等待你输入姓名后再往下继续走。
    print("Hello"+name)

    可以让用户输入多个信息,如下
    name=input("What is your name?")
    age=input("How old are you?")
    hometown=input("Where is your hometown?")
    print("Hello ",name,"your are ",age,"years old,you came from",hometown)

    image.png

    数字类型-数字

    什么是数据类型?
    我们人类可以很容易的分清数字与字符的区别,但是计
    算机并不能呀,计算机虽然很强大,但从某种角度上看
    又很傻,除非你明确的告诉它,1是数字,“汉”是文字,
    否则它是分不清1和“汉’的区别的,因此,在每个编程语
    言里都会有一个叫数据类型的东东,其实就是对常用的
    各种数据类型进行了明确的划分,你想让计算机进行数
    值运算,你就传数字给它,你想让他处理文字,就传字
    符串类型给他。Python中常用的数据类型有哪些呢

    image.png

    int(整型)
    ·在32位机器上,整数的位数为32位,取值范围为-2312**31-1,即-2147483648214748364
    ·在64位系统上,整数的位数为64位,取值范围为-2
    63~2**63-1,即-9223372036854775808
    ~9223372036854775807
    long(长整型)
    跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由
    于机器内存有限,我们使用的长整数数值不可能无限大。
    注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长
    整数数据后面不加字母L也不会导致严重后果了。

    o注意在Python3里不再有long类型了,全都是int
    o除了int和long之外,其实还有float浮点型,复数型,但今天先不讲啦

    数据类型-字符串

    在Python中,加了引号的字符都被认为是字符串!
    >>>name="Alex Li"    #双引号
    >>>age="22"             #只要加引号就是字符串
    >>>age2=22              #int
    >>>msg="My name is Alex,I am 22 years old!'      #我擦,3个引号也可以
    >>>hometown='ShanDong'                                  #单引号也可以

    那单引号、双引号、多引号有什么区别呢?
    单双引号木有任何区别,只有下面这种情况你需要考虑单双的配合

    msg="My name is Alex,I'm 22 years old!"

    多引号什么作用呢?
    作用就是多行字符串必须用多引号
    msg = '''
    今天我想写首小诗,
    歌颂我的同桌,
    你看他那乌黑的短发,
    好像一只炸毛鸡。
    '''
    print(msg)

    字符串拼接

    数字可以进行加减乘除等运算,字符串呢?让我大声告诉你
    也能!what?是的,但只能进行“相加“和“相乘“运算。
    >>>name
    Alex Li'
    >>>age
    '22'
    >>>name+age    #相加其实就是简单拼接
    ‘ALex Li22’
    >>>
    >>>name * 10           #相乘其实就是复制自己多少次,再拼接在一起
    ‘Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'

    注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接单双引号
    >>>type(name),type(age2)
    (<type'str'>,<type‘int'>)
    >>>
    >>>name
    ‘Alex Li'
    >>>age2
    22
    >>>name+age2
    Traceback(most recent call last):
    File"",line 1,in
    TypeError:cannot concatenate 'str'and ‘int'objects #错误提示数字和字符不能拼接

    数据类型-布尔类型

    布尔类型很简单,就两个值,一个True(真),一个False(假),主要用于逻辑判断!
    你是不是不明白?
    >>>a=3
    >>>b=5
    >>>
    >>>a>b#不成立就是False,即假False
    >>>
    >>>a<b#成立就是True,即真 True

    计算机为什么要描述这种条件呢?
    因为接下来就可以根据条件结果来干不同的事情了
    if a > b
    print(a is bigger than b)
    else
    print(a is smaller than b)

    格式化输出

    如何实现这个小程序

    name=input("Name:")
    age=input("Age:")
    job=input("Job:")
    hometown=input("Hometown:")
    #print("------—-info of",name,----')
    #print("Name:",name)
    #print("Age:",age)
    #print("Job:",job)
    #print("-------end----")
    
    info = """
    ------------ info of %s-------------
    Name:    %s
    Age :    %s
    Job :    %s
    Hometown: %s
    ------------ end  ------------------
    """ % (name,name,age,job,hometown)
    #s = string
    #d = digit
    #f = float
    print(info)
    
    

    运算符

    计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,
    今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算

    算数运算

    以下假设变量:a=10,b=20

    运算符 描述 实例
    + 加-两个对象相加 a+b输出结果30
    - 减-得到负数或是一个数减去另一个数 a-b输出结果-10
    * 乘-两个数相乘或是返回一个被重复若干次的字符串 a*b输出结果200
    / 除-x除以y b/a输出结果2
    % 取模-返回除法的余数 b%a输出结果0
    ** 幂-返回x的y次幂 a**b为10的20次方,输出结果100000000000000000000
    // 取整除-返回商的整数部分 9//2输出结果4,9.0/2.0输出结果4.0

    比较运算

    以下假设变量:a=10,b=20
    image.png

    赋值运算

    以下假设变量:a=10,b=20
    image.png

    逻辑运算

    image.png

    image.png

    流程控制-单双分支

    单分支
    if 条件:
    满足条件后要执行的代码

    练习:
    ·输入姓名、性别,判断如果是女生,打印,我喜欢女生!
    ·输入姓名、性别,判断如果是女生且年龄小于28岁,打印,我喜欢女生!

    image.png

    双分支

    if条件:
    满足条件执行代码
    else:
    if条件不满足就走这段

    Age0f0ldboy=48
    if Age0f0ldboy>50:
    print("Too old,time to retire..")
    else:
    print(“还能折腾几年!")
    
    

    练习:
    ·输入姓名、性别,判断如果是女生,打印我喜欢女生,否则,打印一起来搞基!
    ·输入姓名、性别、年龄,判断如果是女生且年龄小于28岁,打印我喜欢女生,否则,打印姐弟恋也很好奥!
    ·输入姓名、性别、年龄,判断如果是女生且年龄小于28岁,打印我喜欢女生,否则,打印姐弟恋也很好奥!如果是男生,打印一起来搞基!

    name=input("name:")
    sex=input("sex:")
    age=int(input("Age:"))
    #if sex=='fl:
    ##1如果是女生
    #1.1如果年龄小于28
    #1.1.1打印喜欢女生
    #1.2打印姐弟恋很好
    #2.如果是男生,打印搞基
    if sex=="f":
    	if age<28:
    			print("I love girls")
    	else:
    			print(“姐弟恋也很好”)
    else:
    	print(“一起来搞基")
    
    print("----here ....")
    

    多分支

    if 条件:
    	满足条件执行代码
    elif 条件:
    	上面的条件不满足就走这个
    elif 条件:
    	上面的条件不满足就走这个
    elif 条件:
    	上面的条件不满足就走这个
    else:
    	上面所有的条件不满足就走这段
    
    

    练习:

    • 写个猜年龄的游戏吧
    #_*_coding:utf-8_*_
    
    age=26
    user_guess=int(input("your guess:"))
    
    if user_guess == age :
    		print("恭喜你答对了,可以抱得傻姑娘回家!")
    elif user_guess < age:
    		print("try bigger")
    else :
    		print("try smaller")
        
    ----------------------------------------------
    
    age_of_oldboy=48
    guess=int(input("s>:")
    if guess>age_of_oldboy:
    	print("猜的太大了,往小里试试…")
    elif guess<age_of_oldboy:
    	print("猜的太小了,往大里试试..")
    else:
    	print("恭喜你,猜对了.")
    
    

    再来个匹配成绩的小程序吧,成绩有ABCDE5个等级,与分数的对应关系如下
    A 90-100
    B 80-89
    C 60-79
    D 40-59
    E  0-39

    要求用户输入O-100的数字后,你能正确打印他的对应成绩

    if score>100:
    	print("成绩最多只能到100")
    elif score>=90:
    	print("A")
    elif score>=80:
    	print("B")
    elif score >=60:
    	print("C")
    elif score >=40:
    	print("D")
    elif score >= 0:
    	print("E")
    else:
    	print("成绩不能是负数")
    
    

    While循环

    猜年龄游戏升级版,允许用户最多猜3次!
    image.png 
    即使是小白的你,也觉得的太low了是不是,以后要修改功能还得修改3次。
    因此记住,写重复的代码是程序员最不耻的行为。
    那么如何做到不用写重复代码又能让程序重复一段代码多次呢?循环语句就派上用场啦

    while循环
    语法
    while条件:
    执行代码...

    写个让程序从0打印到100的程序,每循环一次,+1+

    count=0
    while count <= 100 :   #只要count<=100就不断执行下面的代码
    	print("loop",count)
    	count +=1    #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
    
    print('------loop is ended-----')
    
    

    练习:
    如果我想实现打印1到100的偶数怎么办呢?
    循环打印1-100,第50次不打印值,第60-80次,打印对应值的平方。

    #打印偶数
    count=0
    
    while count <= 100:
    
    	if count % 2 == 0: #偶数
      		print("Loop",count)
    	count+=1
      
    print(----loop is ended----')
    
    

    image.png

    -dead loop

    有一种循环叫死循环,一经触发,就运行个天荒地老、海枯石烂。
    while 是只要后边条件成立(也就是条件结果为真)就一直执行,怎么让条件一直成立呢?```

    count = 0
    while True: #True本身就是真呀
    
    	print(“你是风儿我是沙,缠缠绵绵到天涯...",count)
    	count += 1
    
    

    -continue vs break

    循环终止语句
    如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到break或continue 语句
    ·break用于完全结束一个循环,跳出循环体执行循环后面的语句
    ·continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环

    count = 0
    while count <= 100 :   #只要count<=100就不断执行下面的代码
    	print("loop",count)
    	if count == 5:
    		break
    	count += 1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
    
    print("----out of while loop----—-")
    
    
    输出
    1oop 0
    1oop 1
    1oop 2
    1oop 3
    1oop 4
    1oop 5
    ----out of while loop-----
    
    
    count=0
    while count<=100:
    	count+=1
    	if count>5 and count<95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
    			continue
    	print("loop",count)
      
    print("-----out of while loop---—-")
    
    输出
    1oop 1
    1oop 2
    1oop 3
    1oop 4
    1oop 5
    1oop 95
    1oop 96
    1oop 97
    1oop 98
    1oop 99
    1oop 100
    1oop 101
    ---out of while loop------
    
    

    练习:
    ·优化猜年龄游戏,允许用户最多猜3次,中间猜对了,直接跳出循环
    ·优化猜年龄游戏,允许用户最多猜3次,猜了3次后,再问是否还想玩,如果
    用户选y,刚再允许猜3次,以次往复…

    猜年龄练习解答

    image.png
    -----------------------------------------------------------------------------
    image.png

    While else语句

    与其它语言else一般只与if搭配不同,在Python中还有个while..else 语句
    while 后面的else作用是指,当while循环正常执行完,中间没有被break中止的话,就会执行else后面的语句
    image.png

    开发工具Pycharm 使用介绍

    开发工具IDE
    代码自动补全
    语法错误提醒
    代码调试
    性能测试
    web开发框架支持
    git/svn支持


    image.png

  • 相关阅读:
    linux基础命令1
    linux下nginx搭建
    linux 对外开放端口
    linux下mysql 登录修改密码与数据库备份
    linux下mysql部署
    linux下mysql启动 Starting MySQL. ERROR! The server quit without updating PID file(xxx/x.pid)
    aptitude软件状态标志i、v、p
    GNU各软件版本历史站点
    glibc库和glib库
    禁用ipv6的两种方法
  • 原文地址:https://www.cnblogs.com/chengkanghua/p/11157627.html
Copyright © 2011-2022 走看看