Python的发展史

  1989年圣诞节期间,吉多·范罗苏姆为了打发时间,开发了python这门语言。真他妈牛逼。

  Python崇尚优美、清晰、简单,是一门优秀并广泛使用的语言。2007年在TIOBE榜上已经排到了第四名,被越来越多的人认可并使用。

  

  目前Python主要应用领域:web开发、云计算、人工智能、系统运维、数据分析、图像处理等

  随着时代的发展,Python不断地更新升级,在2008年年末相继出现了Python2和Python3两个大的版本,两大版本在大环境下的区别为:

  Python2:1.源码都含有PHP、Java、C等语言的规范陋习。

      2.重复代码特别多。

  Python3:源码规范、清晰、简单,符合Python的宗旨。

Python的划分

  解释型:当程序运行时,将代码从上至下,一句一句解释成二进制,然后在执行。

         典型的有PHP,python。优点是开发速度快,可以跨平台。缺点是执行效率慢。

  编译型:将源码一次性转化成二进制文件,然后在执行。

         典型的有C语言,C++。优点是执行效率快。缺点:开发速度慢,不能跨平台。

Python的优缺点和种类

优点:1.Python的定位是“优雅”、“明确”、“简单”,所以python程序看上去简单易懂,初学者学python,容易入门,而且将来深入下去,可以编写那些非常复杂   的程序。

  2.开发效率非常高。Python有非常强大的第三方库,你想通过计算机实现的很多基本功能,python官方库都有相应的模块支持,直接下载调用后,在基础库的基础上再进行开发,大大降低了开发周期,避免重复造轮子。

  3.高级语言——当你用python语言编写程序的时候,你无须考虑如何诸如如何管理你的程序使用的内存一类底层的细节。

  4.可移植性——由于它的开源本质,Python已经被移植到许多平台(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有python程序无需修改就几乎可以在市场上所有的平台上运行。

  5.可扩展性——如果你需要你的一段关键代码运行的更快或者希望某些算法不公开,你可以把你的部分程序用C或者C++编写,然后在你的python程序中使用它们。

  6.可嵌入性——你可以把python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

缺点:1.速度慢,Python的运行速度相比于C语言确实慢很多,跟JAVA相比也要慢,因此这也是许多大牛不屑于使用它的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法感知到的,必须借助测试工具才能体现出来。比如你用C运行一个程序花了0.01秒,用python花了0.1秒,C语言的速度是python的10倍,但是你是无法直接通过肉眼感知的(正常人感知时间的最小单位是0.15~0.4s),所以在大多数情况下python已经完全可以满足你对程序速度的要求,除非你要写对速度要求非常高的搜索引擎等,这种情况下建议用C语言去写。

  2.代码不能加密。因为python是解释型语言,它的源码都是以名文形式存放的。如果你的项目要求源码必须加密,一开始就不要用python来实现。

  3.线程不能利用多CPU问题,这是python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,python的线程是操作系统的原生线程。在linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行,一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。

Python的种类

  Python的解释器有很多,比如:CPython,IPython,PyPy,Jython等,使用最广泛的是CPython。如果要和其他语言交互,最好的办法不是用Jython等这些解释器,而是通过网络调用来交互,确保各程序之间的独立性。

Python版本的第二个区别

  Python3:y英文,中文没有问题。默认编码:UTF-8

  Python2:英文没问题,中文报错。默认编码:ASCII

      显示中文:首行:#  -*- encoding:utf-8 -*-

变量

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

  变量的规则:

  1、变量是由数字,字母,下划线,任意组合。

   2、变量不能以数字开头。

   3、变量不能是python的关键字。

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']

   4、变量可描述性。

   5、变量不能是中文。

   6、变量不能过长。

#驼峰体

AgeOfOldboy = 56

NumberOfStudents = 80

#下划线

age_of_oldboy = 56

number_of_students = 80

常量

  在python中没有专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量,常量轻易不要变。比如ID、π

注释

  单行注释:#被注释内容

  多行注释:'''被注释内容'''或者"""被注释内容"""

初识基础数据类型

  1.数字:int

     数字可以进行加减乘除运算

  2.字符串:str

  在Python中,凡是用引号引起来的,全是字符串。字符串只能进行相加和相乘运算,而且相加或相乘的双方都必须是字符串,不能是数字和其他类型。

  3.布尔值:bool

   布尔类型很简单,就两个值,一个True(真),一个False(假),主要用于逻辑判断。

用户交互input

  input接收的所有输入默认都是字符串格式。

    例如:查看数据类型的方法:type()

      

name = input("Name:")
age = input("Age:")
print(type(age))

      执行输出:Name:某某某

        Age:22

        <class  'str'>       输出结果为str,而不是int。

    解决的方法就是把str转化成int:条件就是全是数字组成的字符串。

age = int(input("Age:"))
print(type(age))

PS:input在Python2和Python3中的区别(python2:raw_input                python3:input)

if条件语句

  if条件语句有三种方式:

  1.   if  条件:

        满足条件后执行此处代码

  2.  if   条件:

        满足条件后执行此处代码

     else:

        条件不满足执行此处代码

  3.  if   条件:

        满足此处条件执行代码

       elif   条件:

       上述条件不满足执行此处代码

      elif   条件:

       上述条件不满足执行此处代码

      elif   .....

      else:

       上述所有条件不满足执行此处代码

score = int(input("输入分数:"))

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")
else:
print("太笨了...E")

 PS:缩进(强制缩进)

  Python的缩进有以下几个原则:

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

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

  官方建议缩进用四个空格(Tab键)

while循环语句

  1.基本循环

    while   条件:

      结果

while True:
print("我们不一样")
print("我们都一样")
print("有啥不一样")

  2.循环中止

    a:改变条件

    b:break或者continue

      两者区别在于continue是结束本次循环,继续执行下一次循环;break则是完全中止循环。

#输出1、2、3、4、5、6、8、9、10
count = 1
while count <= 10:
if count == 7:
count += 1
continue
else:
print(count)
count += 1
start = 1
while start <100:
if start ==13:
  print("这代码写的像2B")
  break
  else:
  print(start)
  start += 1

例如:求1-2+3-4+5......-98+99-100的和

count = 1
sum = 0
while count <= 100:
if count % 2 == 1:
sum += count
else:
sum -=count
count += 1
print(sum)

3.while...else

例如:用户登录(三次输入机会)

count = 1
while count <= 3:
username = input("请输入用户名:")
password = input("请输入密码:")
if username == "你瞅啥" and password == "就瞅你":
print("再瞅试试,恭喜你登录成功")
break
else :
print("用户名和密码输入错误,请重新输入")
count += 1
if count == 4:
answer = input("就瞅你咋地,继续登录请输入'y'")
if answer =="y":
count = 1
else:
print("你要不要脸")

python基础之初识python的更多相关文章

  1. python基础(初识Python)

    python基础(初识Python) 本章内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.pyc文件.脚步传入参数.变量.输入.流程控制与缩进.while循环) ...

  2. Python基础(1) - 初识Python

    Python 特点: 1)面向对象 2)解释执行 3)跨平台.可移植 4)垃圾回收机制 5)动态数据类型.强类型 6)可扩展.可嵌入 Python可以方便调用C/C++等语言,同时也可以方便的被C/C ...

  3. Python 基础之四初识Python数据类型

    数字 Int,整型 Float,浮点型 Long,长整型 布尔 字符串 列表 元组 字典 1.数字 INT(整型) 在32位系统上,整数的位数为32位,取值范围为-2**31~2**31-1,即-21 ...

  4. 孤荷凌寒自学python第二十一天初识python的类

    孤荷凌寒自学python第二十一天初识python的类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 类是面向对象的编程语言非常重要的概念. 编程语言的进化史中从顺序编程到结构化编程,最后才 ...

  5. python基础系列教程——Python中的编码问题,中文乱码问题

    python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...

  6. python基础系列教程——Python库的安装与卸载

    python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...

  7. python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda

    ---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...

  8. python开发:初识python

    python简介 Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube.D ...

  9. 1:Python开发:初识Python

    1.开发语言: 高级语言:Python, Java, PHP ,C# ,Go, ruby, c++ ==>字节码 低级语言:C,汇编 ==>机器码 2.开发语言的对比: PHP类:适用于写 ...

随机推荐

  1. iOS-SDWebImage的原理以及使用流程

    SDWebImage 支持异步的图片下载+缓存,提供了 UIImageView+WebCacha 的 category,方便使用.SDWebImage加载图片的流程: 1. 入口 setImageWi ...

  2. Unity3D - UGUI实现Tab键切换输入框、按钮(按Tab键切换高亮显示的UI)

    1.在Hierarchy面板创建能被选中的UI(Button.InputField等). 2.在Canvas上创建C#脚本 TabCutPichon. 3.编写脚本. using System.Col ...

  3. 【loj6177】「美团 CodeM 初赛 Round B」送外卖2 Floyd+状压dp

    题目描述 一张$n$个点$m$条边的有向图,通过每条边需要消耗时间,初始为$0$时刻,可以在某个点停留.有$q$个任务,每个任务要求在$l_i$或以后时刻到$s_i$接受任务,并在$r_i$或以前时刻 ...

  4. win8.1 host被删,host无法修改,host无法复制进去解决方案

    1.C:\Windows\System32\drivers\etc\hosts  复制到桌面 2.删除C:\Windows\System32\drivers\etc\hosts 3.右键编辑文本--& ...

  5. 【题解】NOI2009管道取珠

    又是艰难想题的一晚,又是做不出来的一题 (:д:) 好想哭啊…… 这题最关键的一点还是提供一种全新的想法.看到平方和这种东西,真的不好dp.然而我一直陷在化式子的泥潭中出不来.平方能够联想到什么?原本 ...

  6. 【题解】ZJOI2013蚂蚁寻路

    这题强呀……打了10+30暴力之后苦想1h并不会做……于是去看题解.看题解的时候又莫名各种看错,结果看了好久才懂……记录一下血泪史吧. 这题不难发现走出来的图形就是一个高低高低的城堡型图案,命名为高峰 ...

  7. [CF1031E]Triple Flips

    题目大意:给你一个长度为$n$的$01$串,一次操作定义为:选取$3$个等距的元素,使其$0$变$1$,$1$变$0$,要求在$\Big\lfloor \dfrac n 3\Big\rfloor+12 ...

  8. hadoop基础----hadoop实战(七)-----hadoop管理工具---使用Cloudera Manager安装Hadoop---Cloudera Manager和CDH5.8离线安装

    hadoop基础----hadoop实战(六)-----hadoop管理工具---Cloudera Manager---CDH介绍 简介 我们在上篇文章中已经了解了CDH,为了后续的学习,我们本章就来 ...

  9. jocky1.0.3 (原joc) java混淆器 去除jdk版本限制

    昨晚下班回去,研究了下jocky1.0.3的使用,发现编译时提示引用类库版本不对,捣弄了半个小时后终于理解,原来是我的jdk1.7版本过高,这货是06年的版本,到现在都没更新过,支持(限制)的最高版本 ...

  10. WCF分布式开发步步为赢(15):错误契约(FaultContract)与异常处理(ExceptionHandle)

    今天学习WCF分布式开发步步为赢系列的15节:错误契约(FaultContract)与异常处理(ExceptionHandle).本节内容作为WCF分布式开发的一个重要知识点,无论在学习还是项目中都应 ...