python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。
(龟叔:2005年加入谷歌至2012年,2013年加入Dropbox直到如今,依然掌握着Python发展的核心方向,被称为仁慈的独裁者)。java
2019年6月的TIOBE排行榜,Python占据第三的位置, Python崇尚优美、清晰、简单,是一个优秀并普遍使用的语言。python
据当前来看Python在TIORB排行榜中,位居第三.Python崇尚优美、清晰、简单,是一个优秀并普遍使用的语言. Python总体呈上升趋势,反映出Python应用愈来愈普遍而且也逐渐获得业内的承认!
Python的主要应用领域:c++
Python在哪些公司被使用:git
1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他但愿这个新的叫作Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。web
1991年,第一个Python编译器诞生。它是用C语言实现的,并可以调用C语言的库文件。从一出生,Python已经具备了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。shell
编程语言主要从如下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,咱们主要经过编译型和解释性来划分Python是什么编程语言编程
编译型与解释型vim
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时windows
计算机能够直接以机器语言来运行此程序,速度很快;安全
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,
因此运行速度是不如编译后的程序运行的快的.
为何会有编译型好解释型语言是由于计算机不能直接认识并执行咱们写的语句,它只能认识机器语言(是二进制 的形式)
编译型
解释型
动态语言和静态语言
动态类型语言:
动态类型语言是指在运行期间才去作数据类型检查的语言,也就是说,
在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,
在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其余的各类脚本语言如
VBScript也多少属于动态类型语言。
静态类型语言:
静态类型语言与动态类型语言恰好相反,它的数据类型是在编译其间检查的,
也就是说在写程序时要声明全部变量的数据类型,C/C++是静态类型语言的典型表明,
其余的静态类型语言还有C#、JAVA等。
强类型定义语言和弱类型定义语言
强类型定义语言:
强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,若是不通过强制转换,那么它就永远是这个数据类型了。
举个例子:若是你定义了一个整型变量a,那么程序根本不可能将a看成字符串类型处理。
强类型定义语言是类型安全的语言。
弱类型定义语言:
数据类型能够被忽略的语言。它与强类型定义语言相反, 一个变量能够赋不一样数据类型的值。强类型定义语言在速度上可能略逊色于弱类型定义语言,可是强类型定义语言带来的严谨性可以有效的避 免许多错误。另外,“这门语言是否是动态语言”与“这门语言是否类型安全”之间是彻底没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。
经过上面这些介绍,咱们能够得出.
Python是一门动态解释性的弱类型定义语言。
Cpython
Jyhton
IronPython
PyPy(特殊)
看了这么多内容,感受好厉害已近火烧眉毛的想要动手去试试了,我不得不说,仍是须要在稍等一下.咱们须要安装一下Python解释器
Downloads
下载,以下图向下查找,找到Python 3.6.3
根据当前系统的选择对用的,红色的是windows32位,绿色的是windows64位
下载完成后找到下载的目录,而后用鼠标左键双击
打开电脑的终端(黑窗口),输入 python回车进去python解释器,返回的结果入下图:
在终端中 >>> 输入exit() 以下图:
Windows系统使用Notepad++建立一个文本,文本中的内容以下:
print("hello world")
写完后必定要记得保存,保存完后咱们打开咱们的终端,Windows系统的找到图下的两个键:
而后会弹出运行的窗口,咱们在运行的窗口中输入cmd.
Mac系统的电脑首先打开 启动台 — 其余 — 终端 — 输入 vim 文件名字 而后按键盘i 进行输入而后退出的时候按一下esc键 发现文件的左下角有个: 而后在这个位置输入wq! 回车就好了,具体的请看图下实例
咱们如今都打开了终端后再终端中输入如下命令:
python 文件名.py
注意点:python和文件名是有空格的,再次肯定一下你们的如今是否是都是这个样子的:
print() 括号里面的内容就是要输出的内容,若是是文字和字母须要用英文的引号引发来,数字直接写就能够啦
python2写法: print 'hello world' python3写法: print('hello world') 咱们学习的python3版本,python2版本是什么样也要知道
咱们如今成功的将英文的打印出来了,如今咱们使用这种方式打印一下中文的内容吧!
print("你好 世界")
而后将文件保存了,保存后咱们在来终端上运行一次.是否是都出现报错了,出现报错这个是正常的,咱们只须要在加上一句话就能够了.
#conding:utf-8
这局话必需要加在文件的第一行,这个是告诉解释器当文件中出现中文的时候使用utf-8的编码进行查看
什么是变量?
变量就是把程序运行的中间结果临时存在内存中,以便后续代码使用
这个知识点用在哪呢? 变量在咱们后期中常常会被使用
变量如何使用?
name = "meet"
这样就是在定义一个变量,咱们具体说一下定义变量
name 是一个变量名 = 是一个赋值操做 赋值就是将值交给name 'Meet' 是一个值
变量的做用:昵称,就是代指内存中某个地址中的内容
咱们定义变量的时候,能够任意起名字吗? 应该是有规则的吧,咱们来看看变量定义的规则
变量的定义规则
变量名由字母,数字,下划线组成
变量名禁止使用数字开头
禁止使用Python中的关键字以及内置函数的名字
关键字以下:
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
不建议使用中文和拼音
变量名要具备意义
变量名区分大小写
推荐写法:
这是两种写法,大家以为那种的比较清晰.是否是第二种看着比较清晰,第一种猛的一看还觉得是AngelaBaby呢
咱们如今定义一个变量知道了,看看定义多个变量
变量的赋值
name1 = 'Meet' name2 = 'Guo'
此时的name1的值是Meet,name2的值是Guo,咱们来看看下边的这个变量
如今咱们在内存中开辟了两个空间,分别给不一样的内存地址贴上不一样的标签,咱们来看看下边的代码
name1 = 'Meet' name2 = name1
如今的这个name1是meet,name2是name1 也就是name2如今用的是name1的值,name2的值就是meet
变量的小高级
age1 = 18 age2 = age1 age1 = 12 age3 = age2 print(age1,age2,age3)
咱们先来分析一下这个结果是怎样的,在运行看结果是否和你想的同样
若是结果和你想的不一致,你须要注意了.我们代码的运行是从上至下的执行,而且在内存中只能用一个名字相同的标签.
age = 12 age = 12 + 1 age1 = age + 1 print("我今年:",age1) name1 = 'alex' name2 = name1 name1 = 'wusir' name3 = name2 打印name1,name2name3分别对应的值是什么
经过上边的小高级和练习咱们能够得出一个宗旨,代码是从上向下执行,而且便签只能有一份,至关于一个变量名只能代指一个值
常量就是将变量名大写,尽可能保持不更改的一种量 这个常量有是干什么的呢 其实我生活中就有一些定死了的量 好比生日,身份证等 我们代码中,也应该有一些这样的东西,我们从设计之初就是不让任何人改变的,因此这个东西就是常量。
在你写代码时,有些代码写的比较经典,或者过于复杂,你一眼看不出来,怎么办,好比在文言文中,有些出处或者偏难怪的文字,你是否是不理解? 那么怎么办呢?是否是就得有简单说明。
注释就是作这个的,咱们来看一下怎么用
# 这个就是给这一行进行注释,注释后的代码不会执行 ''' 这种的是多行注释, 什么是多行注释啊,其实很简单就是我们注释的内容能够 进行换行 '''
看个示例:
# print('hello') 这样就是对这个代码进行注释,而且这个代码不会执行 ''' print(1) print(2) 这种就是多行注释,这样的注释也不会执行 '''
什么是数据类型?
咱们人类能够很容易的分清数字与字符的区别,可是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,不然它是分不清1和‘汉’的区别的,所以,在每一个编程语言里都会有一个叫数据类型的东西,其实就是对经常使用的各类数据进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。Python中经常使用的数据类型有多种,今天咱们暂只讲3种, 数字、字符串、布尔类型
int是整型;也就是咱们从小就接触的数学中的整数,整型在计算机中运于计算和比较
在32位机器上int的范围是: -231~231-1,即-2147483648~2147483647
在64位机器上int的范围是: -263~263-1,即-9223372036854775808~9223372036854775807
目前这些数字已经够你用了吧. 注意这些是整数.
整型
num1 = 2 num2 = 3 print(num1 + num2) # 结果: 5 # 整型就和咱们学的数学同样能够进行加减乘除
字符串 str是字符串也就是咱们从小就接触的中文,若是咱们在程序中直接把中文写入,程序是不能分辨这是个什么鬼东西.因此咱们要遵循一种规则让计算机可以识别,这个规则就是只要是用引号引发来就是字符串
在Python中,凡是用引号引发来的,全是字符 .
字符 能够用单引号,双引号,或者三引号引发来,没有什么区别,只是一些特殊的格式须要不用的引号 好比:
msg = "My name is Alex , I'm 22 years old!" 这个就须要单双引号配合。 msg =""" 今天我想写首小诗, 来歌颂个人同桌, 你看他那乌黑的短发, 好像一只炸毛鸡。 """ #想写多个内容还须要使用换行的时候,就须要三引号。
数字类型能够作运算,字符串能够吗??
字符串加法
#字符串的拼接 s1 = 'a' s2 = 'bc' print(s1 + s2)
字符串乘法
str*int name = '坚强' print(name*8)
布尔值
bool是布尔值,布尔值中一共分为俩个状态
True 就是真
False 就是假
例如咱们想让计算机帮咱们计算一下两个数的比较大小
print(3>7) 结果: False print(7>3) 结果: True
咱们如今简单的认识了这三个基础数据类型,咱们在学习一下用户输入
我们在登陆一些网页和QQ的时候是否是经常会让我们输入帐户或者密码的状况,
这样的状况在程序中会大量的存在,接下来我们本身实现一个登陆时候要输入的功能
s = input('请输入你喜欢的东西')
input就是固定格式,他是输入的意思 括号里边的内容是提示是给用户看的提示语句,用户输入的内容让input接收了而后赋值给了字符串s
输入用户名
#!/usr/bin/env python #-*- coding:utf-8 -*- #将用户输入的内容赋值给name变量 python2的写法 name = raw_input("请输入用户名:") print name python3的写法 name = input("请输入用户名:") print(name)
须要注意的是input程序交互获取到的内容都是字符串,咱们看下面的简单示例:
num = input('请输入数字:') print(num + 5) 结果: 请输入数字:6 Traceback (most recent call last): File "D:/python_object/test.py", line 350, in <module> print(num + 5) TypeError: must be str, not int
报错了,提示咱们类型错误,数字和字符串是不能相加的.但是咱们输入的明明是数字啊.其实咱们看着输入的是 数字,可是input获取到的都是字符串
这个知识点用在哪里?
在工做中若是须要用户输入一些我的信息好比帐号,密码,性别,爱好等,便是你须要将你输入的信息传递给程序当中,那么就须要用到用户交互input。
注意
在Python2 中使用raw_input 获取的都是字符串 在Python3 中使用input 获取的都是字符串
你在生活中是否是常常遇到各类选择,好比玩色子,猜大小,好比选择走那条路回家?Python程序中也会遇到这种状况,这就用到了if语句。
这个功能就是Python中的流程控制语句if。 那么如何使用这个功能呢?(下面就是)
if 条件: #引号是将条件与结果分开。 结果# 四个空格,或者一个tab键,这个是告诉程序知足这个条件的结果。切记空格和tab键不能混合使用
age = input("输入年龄:") if int(age) >= 18: print("成年了,能干成年人的事了")
age = input('请输入您的年龄:') if int(age) > 18: print('你能够去网吧尽情的嗨皮了') else: print('你如今还不行啊!')
以上这种写法是让用户输入内容,而后进行比较,若是一个条件成立那就执行print,为了明确的区分改执行哪些部分,当条件成立后执行缩进的代码
而后程序就退出了.下边的else就不会在执行了
num = input('请输入要比较的数字:') if int(num) >= 22: print('能够扯证了') elif int(num) >= 18: print('成年了,能够干一些成年的事了') elif int(num) < 18: print('仍是小屁孩')
以上写法就是咱们作的单选题同样,三个分支判断中只要有个成立,其他都不在执行
num = input("请输入要比较的数字:") if num > 60: print("大了") elif num < 60: print("小了") else: print("猜对了")
name = input('请输入名字:') if name == 'meet': age = input('请输入年龄:') if int(age) == 18: print('输入所有正确') else: print('年龄输入错误!') else: print('名字输入错误!')
这样写法很经常使用,这样咱们就能够明确的知道用户输入的名字和年龄那个是错误的,而且还作一个判断若是名字正确后在进行判断密码
首先要下载Pycharm这个软件,官网的下载地址是: http://www.jetbrains.com/pycharm/download/#section=windows
选择左边的点击进行下载,左边的是专业版右边是社区版
出现这个页面就是正在下载,稍微喝杯茶等等
选择Next 点击
我是64位机器,我选择了64,若是是32的就选择32 [无论64仍是32剩下的都选择]
出现这个界面的直接点击Finish关闭就能够了. 咱们如今切换到桌面
找到这个图标而后双击
激活详情http://idea.lanyus.com/页面
点击选择的内容生成激活码,而后将激活码复制到code选项中
这个直接关闭就能够了
若是你的激活码没问题的话,会在个性化,主题设置完毕以后,通过短暂的加载(加载速度取决于电脑性能)进入如图页面,到这一步,PyCharm安装完成了
File -- Settings -- Project -- Project Interpreter,这里会显示当前系统默认的解释器,若是要添加别的解释器,点击工具图标,Add local -- Existing environment,点击三点图标,在打开的本地文件目录中选择解释器文件的.exe文件。就好了,若是你没有选择, PyCharm会自动选择当前环境默认的解释器
鼠标放到大纲而后右键鼠标,出现一个New而后鼠标向右滑动选择python file点击左键
直接写文件的名字就能够了,写完后回车就搞定了.
while 循环 在生活中,咱们遇到过循环的事情吧?好比循环听歌。在程序中,也是存才的,这就是流程控制语句 while
while 条件: # 循环体 # 若是条件为真,那么循环则执行 # 若是条件为假,那么循环不执行
条件若是为真就会一直执行下去 也就人们常说的死循环,咱们想要中止就点那个红色的方块,若是点击的x的话,程序并无中止,还在继续运行着
咱们可使用while循环进行内容循环,咱们怎么可以让程序中止运行?
刚刚说到,死循环是由于条件一直都为真的时候,若是想让while循环中止最简单的方式就是将条件修改为假的,看下面示例
flage = True str_num = input("请输入要比较的数字:") print("进入循环") while flage: if "3" > str_num: print("在执行循环") else: print("要终止循环") flage = False print("退出循环")
咱们如今知道能够经过变量的形式改变while循环,咱们还能够经过计数的方式来控制循环执行循环的次数,先来看一下
count = 0 while True: count = count + 1 print(count)
这样下去我就会执行下去,可是我想到100就停了
count = 0 while count < 100: count = count + 1 print(count)
while 关键后边的是条件,这样就能够经过条件成功的控制住循环的次数,咱们如今知道经过修改while后边的内容来终止循环,这是我们本身想的办法,python这个编程语言中是否是应该也得有个终止循环的关键字什么的吧,咱们来找一下试试
咱们除了可使用条件可以让循环中止,其实Python还给咱们提供了一个break关键字来中止循环
num = 1 while num <6: print(num) num+=1 break print("end")
当程序执行到break的时候就结束了.break就是结束当前这个while循环的 break如下的代码都不执行
continue 用于退出当前循环,继续下一次循环
num = 1 while num <6: print(num) num+=1 continue print("end")
注意:break是终止循环,continue是跳出本次循环,继续下次循环
# 循环一 while True: if 3 > 2: print('你好') break else: print('很差') # 循环二 while True: if 3 > 2: print('你好') print('很差') # 你们看到的这个是否是感受效果是同样的啊,其实否则 # 当上边的代码执行到break的时候else缩进后的内容不会执行
这个执行的效果是由于
循环一执行了循环也执行了if条件打印了你好而后碰到break循环结束了 循环二执行了循环也执行了if条件打印了你好,可是没有break 就继续重复执行了 循环一将3>2改为3<2这个条件就不成立,而后执行了else里打印了很差
首先让用户输入序号选择格式以下:
0.退出 1.开始登陆 若是用户选择序号0 就提示用户退出成功 若是用户选择序号1就让用户输入用户名密码而后进行判断,正确就终止循环,错误从新输入
如今有个须要咱们录入咱们身边好友的信息,格式以下:
------------ info of Alex Li ---------- Name : Alex Li Age : 22 job : Teacher Hobbie: girl ------------- end ----------------
咱们如今能想到的办法就是用一下方法:
name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入职业:') hobby = input('请输入爱好:') a = '------------ info of Alex Li ----------' b = 'Name:' c = 'Age:' d = 'Job:' e = 'Hobby:' f = '------------- end ----------------' print(a+ '\n'+ b+ name+ '\n'+ c+ age+ '\n'+ d+ job+ '\n'+ e+ hobby+ '\n'+ f) # 运行结果 ------------ info of Alex Li ---------- Name:meet Age:18 Job:it Hobby:3 ------------- end ----------------
这样写彻底没有问题,可是会不会比较繁琐呢,有些大佬确定会想这不都实现了吗,还逼叨逼什么啊,那是没有体验过格式化输出有多霸道,咱们如今来体验下霸道的姿式
name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入职业:') hobby = input('请输入爱好:') msg = ''' ------------ info of Alex Li ---------- Name : %s Age : %s job : %s Hobbie: %s ------------- end ---------------- ''' print(msg%(name,age,job,hobby))
咱们但从代码的数量来看,这样就比那样的少,看到这里有细心的老铁们确定在想%s这是啥玩意?
% 是一个占位, 回想下咱们小时候给朋友占位子的场景,是的这个就是占位.那s又是什么呢? s代码的字符串类型;
name = input('>>>') s1 = '1234%d'%int(name) s2 = '1234%i'%int(name) print(s1) print(s2) 结果: >>>89 123489 123489 # %d和%i这种格式化只能用数字来填补占位
num = input('>>>') s= '目前学习进度:%s%%'%num print(s) 结果: >>>80 目前学习进度:80% # 若是咱们字符串中想要显示单独的%就须要用来个%%来转义,否则程序会认为那是一个占位
计算机能够进行的运算有不少种,可不仅加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算.
今天咱们暂只学习 算数运算、比较运算、逻辑运算、赋值运算、成员运算
如下假设变量:a=10,b=20
如下假设变量:a=10,b=20
如下假设变量:a=10,b=20
针对逻辑运算的进一步研究:
在没有()的状况下not 优先级高于 and,and优先级高于or,即优先级关系:
( )>not>and>or,同一优先级从左往右计算。
例题:
判断下列逻辑语句的True,False。
x or y , x为真,值就是x,x为假,值是y;
x and y, x为真,值是y,x为假,值是x。
3>4 or 4<3 and 1==1 1 < 2 and 3 < 4 or 1>2 2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
例题:求出下列逻辑语句的值。
8 or 4 0 and 3 0 or 4 and 3 or 7 or 9 and 6
in not in :
判断子元素是否在原字符串(字典,列表,集合)中:
例如:
#print('喜欢' in 'dkfljadklf喜欢hfjdkas') #print('a' in 'bcvd') #print('y' not in 'ofkjdslaf')
我们的电脑,存储和发送文件,发送的是什么?电脑里面是否是有成千上万个二极管,亮的表明是1,不亮的表明是0,这样实际上电脑的存储和发送是否是都是010101啊
咱们发送的内容都是010101010这样写的内容比较多就不知道是什么了,因此咱们想要明确的区分出来发送的内容就须要
在某个地方进行分段.计算机中设定的就是8位一断句
计算机: 储存文件,或者是传输文件,其实是010101010 计算机建立初期,美国,是7位一段,可是发明者说为了拓展,留出一位,这样就是8位一段句。8位有多少种可能 ?256 密码本: ascii 00000001 01000001 01000010 01000011 ABC
随着计算机的发展. 以及普及率的提升. 流⾏到欧洲和亚洲. 这时ASCII码就不合适了. 好比: 中⽂汉字有几万个. 而ASCII 多也就256个位置. 因此ASCII不行了. 怎么办呢? 这时, 不一样的国家就提出了不一样的编码用来适用于各自的语言环境. 好比, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家均可以使用计算机了.
GBK, 国标码占用2个字节. 对应ASCII码 GBK直接兼容. 由于计算机底层是用英文写的. 你不支持英文确定不行. 而英文已经使用了ASCII码. 因此GBK要兼容ASCII. 这里GBK国标码. 前⾯的ASCII码部分. 因为使⽤两个字节. 因此对于ASCII码⽽言. 前9位都是0
字母A:0100 0001 # ASCII 字母A:0000 0000 0100 0001 # 国标码
随着全球化的普及,发展到欧洲,亚洲等国家,发现这些根本不够用,因此建立了万国码。 由于全球语言不少,ascii不足以存储这么多对应关系,建立了一个超级密码本:万国码unicode
8 位 == 1个字节. hello h一个字符,e一个字符,he就不是一个字符. 中国:中是一个字符,国是一个字符.
unicode
建立之初,16位,2个字节,表示一个字符. 英文: a b c 六个字节 一个英文2个字节 中文 中国 四个字节 一个中文用2个字节
可是这种也不行,这种最多有65535种可能,但是中国文字有9万多,因此改为 32位,4个字节,表示一个字符.
a 01000001 01000010 01000011 00000001 b 01000001 01000010 01100011 00000001 中 01001001 01000010 01100011 00000001 浪费资源.
UTF-8
对Unicode进行升级: utf-8 utf-8 用最少用8位数,去表示一个字符. 英文: 8位,1个字节表示. 欧洲文字: 16位,两个字节表示一个字符. 中文,亚洲文字: 24位,三个字节表示.
utf-16 用最少用16位数。
gbk: 国标,只能中国人本身用, 一个中文用16位,两个字节表示。
8bit = 1byte 1024byte = 1KB 1024KB = 1MB 1024MB = 1GB 1024GB = 1TB 1024TB = 1PB 1024TB = 1EB 1024EB = 1ZB 1024ZB = 1YB 1024YB = 1NB 1024NB = 1DB 常⽤到TB就够了