Python修炼第一天

新的开始:不会Python的运维,人生是不完整的。 为了我的人生能够完整,所以我来了!今后跟着太白金星师傅学习功夫,记录一下心得,以便日后苦练。

一 Python的历史:

Python是一种面对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(江湖人称龟叔)于1989年发明,第一个公开发行版发行于1991年。

1991年第一个Python编译器诞生,使用C语言实现的。并能够调用C语言的库文件!

需要注意的是:2008年 开发了2个版本 Python2.6 与 Python3.0   这是由于 Python2X 源码重复,不规范。所以就开发了Python3,整合了源码,更清晰简单优美。并决定到2020年就不再支持Python2X的版本 。

二 Python的应用:

目前主要领域: 云计算、WEB开发、科学运算、人工智能、系统运维、金融等。

公司应用:谷歌:Google App Engine 、谷歌爬虫 谷歌广告等。

      CIA:美国中情局网站是Pthon开发的。

      NASA:美国航天局大量使用Python进行数据分析。

      YouTube:世界上最大的视频网站就是用Python开发的。

      Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载    

      RedHat:世界最流行的Linux发行版的YUM包管理工具是由Python开发的。         

      豆瓣:公司几乎所有的业务都是通过Python开发。

      知乎:国内最大的问答社区,通过Python开发

      除了上面的还有 金山,搜狐,百度,阿里,淘宝,土豆,新浪,腾讯等等公司都在用。

三 Python的分类:

语言要分为两类:编译型   解析型

编译型: 将代码一次性全部编译成二进制(010101),然后在运行。

    缺点:开发效率低。不能跨平台。

    优点:执行效率高。

    代表:C  C++

解析型: 当程序开始运行时,先编译成字节码,然后交给解释器(虚拟机)一行一行解析,执行。

    缺点:执行效率低

    优点:开发效率高,可以跨平台

    代表:Python

Python解析器主要有:

  CPython: 这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器。

  IPython: IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。

         好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

  PyPy : PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

      绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。

      如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点

  Jython: Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

  IronPython: IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

四 python优缺点:

优点:

  1.开发效率高:是因为拥有强大的第三方库里,想要实现计算机功能可以网上找一些对应的功能模块导入使用。

  2.高级语言:当你写程序的时候,你不用考虑如何管理你的程序使用的内存等类似的底层细节。

  3.可移植性:开源,所以允许移植到多个平台,所以,如果小心避免使用依赖系统的特性,那么这个程序无需修改就几乎可以运行在任何平台上。

  4.可扩展性:可以吧部分程序用C或C++语言编写 然后嵌入到Python程序中使用

  5.课嵌入性 :可以吧Python嵌入到C或C++程序中,给程序用户提供脚本功能。

  6.简单易学:优雅,明确,简单,初学者容易入门。深入下去可以编写非常复杂的程序。

缺点:

  1.速度慢:相比较C要慢很多。跟JAVA也要慢一些,但是这个对于一般的用户也是无法感知的,比如一个C程序运行只用了0.01S 。

  Python运行需要用0.1S,C比Python快了10倍。但是人是无法用肉眼感知的。因为正常人感知最小单位是0.4S左右,所以大多数情况下

  Python都可以满足程序运行速度需求了。

  2.代码不能加密:因为Python是解析型语言,他的源码都是明文形式存放。如果要求代码是加密的,哪就不应该使用Python。

  3.线程不能利用多个CPU:这个问题以后再说。。。

五 变量

变量:将程序中运行的中间结果暂时存放到内存中,以后便程序调用。

5.1 声明变量:

  user = "jack"

     上面代码意思就是声明一个变量,变量名为user, 他的值为“jack”。

5.2 变量的定义:

  1 变量是由数字 字母 下划线任意组合。 并且变量不能以数字开头。

  2 变量不能是Python中的关键字。

  3 变量应具有描述性。

5.3 变量定义规则:

  1 变量不能使用中文,拼音。

  2 变量不能过长。

  3 变量名词不达意。

5.4 变量的写法

  变量一般分为驼峰 与 下划线。

   驼峰:

    UserName = "jack"

   下划线:

    user_name = "tom"

  推荐 下划线

六 常量

6.1 常量定义:一直不变的量就是常量。

  比如 π 、身份证号、 中国成立日期等。

6.2 常量定义规则:

  约定俗成 全部大写字母,同时放在整个文件最上面 那就叫常量。

  比如:

    NEWCHINA = 1949

    while True。。。。

      。。。。。

七 注释

7.1 单行注释 #号:

  比如:

    # 这是个用户名变量

    n = "jack"

7.2 多行注释 ''' ''' 或 """ """

  比如:

    '''

    a = "bbb"

    print(a)

    '''

  比如:

    ''''''

    b = "ccc"

    print(b)

    ''''''

八 基础数据类型

8.1 初识数字与字符串类型:

  int 数字: 计算加减乘除取余等   比如 666  (不加引号)  数字类型还有float浮点型 与复数型。

  str 字符串:用引号引起来的就叫字符串 "666"    同时有单引号,双引号,与多引号。    

    单引号与多引号没有区别,只是在字符中有单引号意思的字符出现时需要使用双引号

    多引号是在多行字符串的情况下使用:

      message = '''

      我同桌不是人,

      我同桌不是      

      '''

8.2 查看类型:

  可以通过type方法查看数据类型:

    print(666,type(666))

    print("666",type("666"))

8.3 字符串拼接:

  数字类型可以进行加减乘除取余等操作,字符串也可以进行加与乘两种运算。单只能是加于乘。

  通过加可以实现字符串拼接:(注意字符串加运算需要两边都是字符串类型。)

    a = "老男孩"

    b = "最好的培训机构"

    c = a + b

    print(c)   结果就是 “老男孩最好的培训机构”

  乘就是用字符串乘数字:

    print("坚强"*8)

    输出为:坚强坚强坚强坚强坚强坚强坚强坚强

8.4 布尔值bool: True,False

  就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断:

    print(bool(1>2))   结果为False   

九 用户交互 Input

  把用户输入的值赋给一个变量(接收用户输入)。然后可以把变量交给程序进行下一步处理。

  注意:input 出来的数据类型全部都是字符串。 如果是数字需要进行数据类型转换: age = int(input("输入您的年龄:"))

     同时如果要字符转换为数字格式 需要字符串都是数字。数字转换为str字符 可以随便转换。

    usernam = inport("请输入您的账号:")

    password = inpurt("请输入您的密码:")

    print(username,password)

十 if

10.1 if基本语句

  主要是进行条件判断。判断布尔值为真或假。来进行流程的控制。

  比如:

    if 条件1:

      结果

    elif 条件2:

      结果

    else:

      结果

10.2 多分支例子:

    num = int(input("输入数字选择:1.召唤神龙,3.召唤苍井空,5.召唤奥特曼,其他退出。"))

    if num == 1:

      print("神龙在路上")

    elif num == 3:

      print("兄弟该补肾了")

    elif num == 5:

      print(”你先给我来个怪兽啊“)

    else:

      print(”会见~“)

  注意: 使用多分支的时候,代码是从上到下依次判断,只要满足一个,就不会再往下走。所以,进行在编写分支条件的时候,要按照从上到下的逻辑顺序来编写。

10.3 缩进:

  Python在判断条件后下一行就需要进行缩进。注意是强制缩进,如果不缩就会报错! 缩进一般使用TAB键,缩进主要就是要为了让程序知道,每段代码依赖哪个条件。

  如果不通过缩进来区分,程序不会知道当条件成立后,去执行哪些代码。

  

10.4 缩进原则:

  1.顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进

  2.同一级别的代码,缩进必须一致

  3.官方建议缩进用4个空格,当然也可以用2个,建议按照官方的统一来。

十一 while

11.1 while基本语句:

  主要是做程序循环的功能:

  条件如果为真,那么程序就会一直循环下去,如果条件为假,就退出。

    while True:

      print("aa")

      print("bb")

      print("cc")

  这个例子会一直循环下去:循环print一圈后再回到while语句第一行,判断while条件是否还是True(真) ,如果是True(真),哪么就继续往下走。

11.2 循环终止语句:

  如果在循环过程中,因为一些原因,不想循环了,那么就需要用到break 与continue

  break: 终止整个循环:

    while True:

      print(a)

      break

  程序从上向下执行,先输出了一个a ,然后遇到break就终止整个循环了。 所以最终只有一个字符a。

  continue:跳出当前循环:

    for i in range(1,11):

      if i == 5:

        continue

      print(i)

 如果等于5就跳出当前循环,所以最后的结果没有5 。结果:1,2,3,4,6,7,8,9,10  。

11.3  while else

  Python中还有while else 这个语句,

  如果while 循环被break打断,那么就不执行else后面的语句,如果没有被break打断就会执行else后面的语句:

   程序没有被break打断:

     a = 1

    while a < 3:

      print(a)

      a +=1

    else:

      print("程序执行完毕!")

  输出结果:  1    2   程序执行完毕 !

  while循环全部执行完毕输出1  2 ,但是没有被break跳出,那么就会继续执行else后面的程序。

  程序被break打断:

    while True:

      print("aaaa")

      break

    else:

      print("程序执行完毕")

  输出结果: aaaaa

  程序循环遇到break跳出,while虽然也全部执行完了。但是因为被break打断的,所以就不会执行else后面的程序了。

十二 格式化输出

12.1 占位符:

  % 为占位符,表示这个地方需要使用格式化输出

12.2  格式化类型:

  s 代表字符串类型输出

  d 代表数字类型输出

12.3 格式化实现方法一:

   name = input("输入您的姓名:")

   age = input("输入您的年龄:")

   sex = input("输入您的性别:")

   job = input("输入您的工作:")

   msg = '''

   ---------- info to %s -----------

   Name : %s

   Age: %d

   Sex: %s

   Job: %s

   ---------------------------------

   '''%(name,name,int(age),sex,job)

12.4 格式化实现方法二:

  info = {"name":"jack","age":22,"sex":"man","job":"IT"}
  msg2 = '''
  -------------- info to %(name)s ----------------
  Name : %(name)s
  Age : %(age)d
  Sex : %(sex)s
  Job : %(job)s
  ----------------- end -------------------
  '''%(info)
  print(msg2)

注意:如果在输入中%号要按照实际输出, 可以加上% 来转义一下: %% 两个百分号就输出实际的%号了。

十三 初始编码

13.1 asiic码

  只有英文字母,数字,特殊符号。

  A  :00000001 8位 等于一个字节 8位是256个

13.2 unicode 万国码

  看到的内容最小组成元素是一个字符 unicode 是16位也就是2字节为一个字符

  16位就是 65535个

  A  :00000001 00000001

13.3 由于万国码也无法装下全世界的语言字符,所以就进行了升级,升级为32位 四个字节表示一个字符

  A  : 00000001 00000001 00000001 00000001   四个字节

  中文   :00000001 00000001 00000001 00000001   四个字节

  这个字符集太浪费空间了。于是吧 unicode 升级到 utf-8。

13.4 utf-8

  UTF-8可以动态调整编码大小。

  A            :  01000010 一字节

  欧洲文字:  00000001 00000001 两字节

  中文       :  00000001 00000001 00000001 三字节

13.5 GBK 国标 :

  只能翻译中文与英文。

  A   :  00000001 一个字节

  中文    : 00000001 00000001 两个字节

十四 基础数据类型简单介绍

  14.1 数组

    数组定义是使用 { } 来进行定义。数组中一个key也叫做键, 对应一个value叫做值,是成对出现的。

      dict = {"name":"jack","sex":"man"}  “name”就是key  "jack"就是value。

    键的类型只能是 int 、  bool 、  str、  tuple()。一般是使用字符串当键。

    数组取值: 使用数组的键来获取他的值。

      dict = {"name":"jack","sex":"man","job":"IT"}

      print(dict["name"] )    输出结果为"jack"

  14.2 列表

    列表定义是使用 [ ] 来进行定义:

      name = [ "jack","tom","bobo"]

    列表中的值是有索引的也叫下标,每个值对应一个下标。默认是从0开始

    比如:取出列表中的jack

      li = [1,2,3,4,5,"jack"]

      print(li[5])    输出结果为"jack"

练习题:

1、使用while循环输入 1 2 3 4 5 6 8 9 10

2、求1-100的所有数的和

3、输出 1-100 内的所有奇数

4、输出 1-100 内的所有偶数

5、求1-2+3-4+5 ... 99的所有数的和

6、用户登陆(三次机会重试)

  可以支持多用户登录

  li = [{'username':'alex','password':'SB'},

  {'username':'wusir','password':'sb'},

  {'username':'taibai','password':'男神'},

  ]

  客户输入了三次机会,都没成功,给它一个选择,让它在试试

  Y 再给他三次机会...不输入了,print('拜拜。。')

python修炼第一天的更多相关文章

  1. Python 修炼1

    2016年11月21日 Python基础修炼第一篇 1.Python是什么?有什么优缺点呢? python是一个高级编程语言. 优点:开发效率比较高,不但有php写网页的功能,还有写后台的功能 缺点: ...

  2. 用Python设计第一个游戏 - 零基础入门学习Python002

    用Python设计第一个游戏 让编程改变世界 Change the world by program 有些鱼油可能会说,哇,小甲鱼你开玩笑呐!这这这这就上游戏啦?你不打算给我们讲讲变量,分支,循环,条 ...

  3. python爬虫第一天

    python爬虫第一天 太久没折腾爬虫 又要重头开始了....感谢虫师大牛的文章. 接下来的是我的随笔 0x01 获取整个页面 我要爬的是百度贴吧的图,当然也是跟着虫师大牛的思路. 代码如下: #co ...

  4. python学习第一讲,python简介

    目录 python学习第一讲,python简介 一丶python简介 1.解释型语言与编译型语言 2.python的特点 3.python的优缺点 二丶第一个python程序 1.python源程序概 ...

  5. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  6. web前端学习python之第一章_基础语法(一)

    web前端学习python之第一章_基础语法(一) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  7. python 学习第一天

    第一天接触python,首先感谢老男孩的授课老师!!!! 今天的知识点: 1.首先接触到python的第一个模块getpass(这边有点迷茫,不能确定的是这个getpasss是一个库还是一个模块)ge ...

  8. Python 编程第一步

    Python  编程第一步 在前面的教程中我们已经学习了一些 Python3 的基本语法知识,下面我们尝试来写一个斐波纳契数列. # Fibonacci series: 斐波纳契数列 # 两个元素的总 ...

  9. Python作业第一课

    零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义, ...

随机推荐

  1. C# readonly与const区别

    静态常量:是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值. 动态常量的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明 ...

  2. pat1067 在离散数学中置换群思想上可用并查集和递归两种方法求解问题

    1.递归求解  注:叙述时 节点其实就是数字0-N-1 !!!最好用一个数组记录0-N-1每个数字的位置 !!!递归计算一个置换群内部的节点数 分为两种情况 累加M,M即是一个置换群所有数字在正确位置 ...

  3. 【转载】系统吞吐量(TPS)、用户并发量、性能测试概念和公式

    系统吞度量要素 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高,外部系统接口.IO影响速度越慢,系统吞吐能力越低,反之越高 ...

  4. POJ 3311 Hie with the Pie 【状压DP】

    Description The Pizazz Pizzeria prides itself in delivering pizzas to its customers as fast as possi ...

  5. 三、原子变量与CAS算法

    原子变量:jdk1.5 后 java.util.concurrent.atomic 包下提供了常用的原子变量: - AtomicBoolean - AtomicInteger - AtomicLong ...

  6. scrapy爬虫具体案例步骤详细分析

    scrapy爬虫具体案例详细分析 scrapy,它是一个整合了的爬虫框架, 有着非常健全的管理系统. 而且它也是分布式爬虫, 它的管理体系非常复杂. 但是特别高效.用途广泛,主要用于数据挖掘.检测以及 ...

  7. Unity3d外包—就找北京动点软件(长年承接Unity3d软件、游戏项目外包)

    承接Unity3d体感企业项目.游戏项目外包 北京公司.专业团队,成员为专业Unity3d产品公司一线开发人员,有大型产品开发经验: 提供优质的售后服务,保证产品质量,轻量级产品可以提供规范清晰的源代 ...

  8. DAY16 模块和包的导入

    一.包 1.包的定义 包:就是一系列模块的结合体 2.重点 1.包中一定要有一个专门来管理包中所有模块的文件 2.包名:存放一系列模块的文件夹名字 3.包名(包对象)存放的是管理模块的那个文件的地址, ...

  9. 安装卡巴 OFFICE链接 出现这个过程被中断,由于本机的限制

    今天 安装了卡巴后 office 超链接功能不能使用了,一点击超链接,就会发出警报,说”由于本机的限制,此操作已被取消,请与系统管理员联系“ 解决办法:1打开注册表2到这个位置:HKEY_CURREN ...

  10. 在action中进行文件下载,下载时运行不报错,可是也不下载

    在写前端下载页面时,使用ajax方式调用action中的方法,然后就将下载内容返回js中了,所以没有下载,之后改为使用Windows.location进行下载,就没有问题了. action中代码: i ...