21天Python入门必备第一章

可莉
• 阅读 811

21天Python入门必备第一章

课程介绍

21天Python入门必备第一章

21天Python入门必备第一章

Python与其他语言的区别

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

  • C\C++:学习成本高,学习周期长,偏系统底层,在开发硬件驱动、散入式、游戏引擎开发等领城有广的应用
  • 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几乎是霸主地位,Scrapy\Request\Beautifusoap\urib等,想爬啥就爬啥
  • 自动化运维——问问中国的每个运维人员,运维人员必须会的语言是什么?10个人相信会给你一个相同的答亲,它的名字叫Python
  • 料学运算一一你知道么,9升年开始,NASA就在大量使用Python在进行各种夏杂的科学运算,随着NumPy,Scipy,Matplotlib,Enthought librarys等众多程序库的开发,使的Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和料学计算领或最流行的商业软件Maflab相比,Pythow是一门通用的程房设计语言,比Malab所采用的脚本语言的应用范围更广之
  • 游戏开发——在网络游戏开发中Pythom也有很多应用,Python 非常适合编写1万行以上的项目,而且能影很好地把网游项目的规模控制在10万行代码以内。另外据我所知,知名的游戏<文明)就是用Python写的

21天Python入门必备第一章

就业前景

21天Python入门必备第一章 21天Python入门必备第一章
21天Python入门必备第一章

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

编程语言的介绍

21天Python入门必备第一章

21天Python入门必备第一章

高级语言

21天Python入门必备第一章

高级语言编译类

21天Python入门必备第一章

高级语言解释型

21天Python入门必备第一章
21天Python入门必备第一章
小结

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

python介绍和发展史

21天Python入门必备第一章
吉多·范罗苏姆(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解释器类型

21天Python入门必备第一章

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的字节码

21天Python入门必备第一章

Python安装和Hello World

21天Python入门必备第一章

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

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

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

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

变量与变量的作用

21天Python入门必备第一章

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

21天Python入门必备第一章

21天Python入门必备第一章

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

>>>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*

21天Python入门必备第一章
21天Python入门必备第一章

变量定义规范

声明变量
name="Alex Li"
21天Python入门必备第一章
变量定义规则
·变量名只能是字母、数字或下划线的任意组合
·变量名的第一个字符不能是数字
·以下关键字不能声明为变量名[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方式

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

21天Python入门必备第一章

常量

常量即指不变的量,如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)

21天Python入门必备第一章

数字类型-数字

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

21天Python入门必备第一章

int(整型)
·在32位机器上,整数的位数为32位,取值范围为-231~231-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
21天Python入门必备第一章

赋值运算

以下假设变量:a=10,b=20
21天Python入门必备第一章

逻辑运算

21天Python入门必备第一章

21天Python入门必备第一章

流程控制-单双分支

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

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

21天Python入门必备第一章

双分支

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次!
21天Python入门必备第一章  
即使是小白的你,也觉得的太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----')

21天Python入门必备第一章

-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次,以次往复…

猜年龄练习解答

21天Python入门必备第一章
-----------------------------------------------------------------------------
21天Python入门必备第一章

While else语句

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

开发工具Pycharm 使用介绍

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

21天Python入门必备第一章

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这