码迷,mamicode.com
首页 > 编程语言 > 详细

python基础一

时间:2018-05-11 12:56:16      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:简单的   core   count   2.4   utf-8   inf   continue   规则   python解释器   

python基础一

一、python历史

  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。    

(龟叔:2005年加入谷歌至2012年,2013年加入Dropbox直到现在,依然掌握着Python发展的核心方向,被称为仁慈的独裁者)。

二、python发展史

  • 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
  • 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
  • Granddaddy of Python web frameworks, Zope 1 was released in 1999
  • Python 1.0 - January 1994 增加了 lambdamapfilter 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 2.7 - July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
  • Python 3.0 - December 3, 2008
  • Python 3.1 - June 27, 2009
  • Python 3.2 - February 20, 2011
  • Python 3.3 - September 29, 2012
  • Python 3.4 - March 16, 2014
  • Python 3.5 - September 13, 2015
  • Python 3.6 - December 16,2016

三、语言划分

  编译型:将你的代码一次性全部编译成二进制,然后在运行。
  缺点:开发效率低,不能跨平台。
  优点:执行效率高。
  代表:c

  解释型:当程序开始运行时,将代码一行一行的解释成二进制(随声翻译),执行。
  缺点:执行效率低。
  优点:开发效率高,可以跨品台。
  代表:python

五、python的种类  

  1、CPython

    当我们从Python官方网站下载并安装好Python 3.6后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

  CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

  2、IPython

    IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

    CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

  3、PyPy

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

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

  4、Jython

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

  5、IronPython

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

  小结:

    Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

六、python的基础知识

  1、运行需要有执行权限、解释器 

#!/usr/bin/env python
# -*- encoding:utf-8 -*-

  2、注释 

  当行注释:# 被注释内容

  多行注释:‘‘‘被注释内容‘‘‘,或者"""被注释内容"""

  3、变量

  变量是什么?  变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用。  

#变量赋值
#一个等号是赋值 两个等号是等于 #!/usr/bin/env python # -*- coding: utf-8 -*- name1 = "wupeiqi" name2 = "alex"

  

  变量规则: 

1,变量是由数字字母下划线任意组合。
2,变量不能是数字开头。
3,变量不能是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,变量要具有可描述性。
    name,age,fdasgfdas
5,变量不能使用中文。
6,变量不能过长 定义方式 驼峰体 加下划线
    AgeOfOldboy = 56
    NumberOfStudents = 80
#下划线
    age_of_oldboy = 56
    number_of_students = 80

  4、常量

#常量:一直不变的量。π,新中国成立 1949101
#约定俗成全部大写的变量为常量。放到文件最上面。

  5、基础数据类型

int:数字:计算。+ = * / % // .....

str:python中用引号引起来的就叫做字符串(‘‘  "")。
    type(对象) 是什么数据类型
    用处:储存简单的少量数据。
    +    *
    + 字符串的拼接。
    * str* int
bool: True,Flase
  
#type() 查看类型
print(666,type(666)) print(‘666‘,type(‘666‘)) msg = "My name is Alex , I‘m 56 years old!" msg = ‘‘‘ 今天我想写首小诗, 歌颂我的同桌, 你看他那乌黑的短发, 好像一只炸毛鸡。 ‘‘‘ print(msg)

#字符串拼接 a = ‘老男孩 ‘ b = ‘是最好的培训机构‘ c = a + b #相加其实就是简单拼接
print(c) print(‘坚强‘*8) print(2 > 1)
#相乘其实就是复制自己多少次,再拼接在一起

  6、用户交互(input)

input 出来的数据类型全部是字符串。
name = input(‘请输入您的姓名:‘)
sex = input(‘请输入您的性别:‘)
print(‘我的名字是‘ + name,‘我的性别是‘ + sex)

  7、格式化输出

#格式化输出 % 占位符  s(字符串)  d(数字)
,,,
格式强转 前提
ps  str -- > int  str全部由数字组成 ‘1234’
ps  int -- > str  str(int)
,,,

#第一种表现形式: 以元组的形式替换
name = input(‘请输入你的名字:‘)
age = input(‘请输入你的年龄:‘)
job = input(‘请输入你的工作:‘)
hobby = input(‘请输入你的爱好:‘)
msg1 = ‘‘‘ ------------ info of %s -----------
Name  : %s
Age   : %d
job   : %s
Hobbie: %s
------------- end -----------------
‘‘‘ % (name,name,int(age),job,hobby) #int() 强转为数字类型
print(msg1)

#第二种方法: 以字典的方式替换
dic = {‘name‘:‘老男孩‘,‘age‘:45,‘job‘:‘Teacher‘,‘hobby‘:‘吹‘}
msg1 = ‘‘‘ ------------ info of %(name)s -----------
Name  : %(name)s
Age   : %(age)d
job   : %(job)s
Hobbie: %(hobby)s
------------- end -----------------
‘‘‘ % dic
print(msg1)

#单纯只显示%号 ,前面加%转义
msg2 = ‘我叫%s,今年%s,学习进度5%%‘ % (‘太白‘,23)
print(msg2)

  7、if语句

 假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

  if...else 语句

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

#双分支
"""
if 条件:
    满足条件执行代码
else:
    if条件不满足就走这段
"""
AgeOfOldboy = 48

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

 

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

num = int(input(‘猜一下数字:‘))
if num == 6:
    print(‘请你吃饭‘)
elif num == 3:
    print(‘请你喝酒‘)
elif num == 1:
    print(‘请你大保健‘)
4 多种条件必选一个结果
num = int(input(‘猜一下数字:‘))
if num == 6:
    print(‘请你吃饭‘)
elif num == 3:
    print(‘请你喝酒‘)
elif num == 1:
    print(‘请你大保健‘)
else:
    print(‘没机会了.....‘)



score = int(input("输入分数:"))
if score > 100:
    print("我擦,最高分才100...")
elif score >= 90:
    print("A")
elif score >= 60:
    print("C")
elif score >= 80:
    print("B")
elif score >= 40:
    print("D")
else:
    print("太笨了...E")

#这里有个问题,就是当我输入95的时候 ,它打印的结果是A,但是95 明明也大于第二个条件elif score >=80:呀, 为什么不打印B呢?这是因为代码是从上到下依次判断,只要满足一个,就不会再往下走啦,这一点一定要清楚呀!

  8、while 循环

while 条件:
     
    # 循环体
 
    # 如果条件为真,那么循环体则执行
    # 如果条件为假,那么循环体不执行

  9、循环中止语句

  如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到break 或 continue 语句

  • break用于完全结束一个循环,跳出循环体执行循环后面的语句
  • continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环
  • #如何终止循环:
    #1,改变条件。
    #2,break
    count = 1
    while count <= 100:
        print(count)
        count = count + 1 # count += 1 跟前式相同
    
    count = 1
    flag = True
    while flag:
        print(count)
        count = count + 1
        if count == 101:
            flag = False
    
    count = 1
    sum = 0
    while count < 101:
        sum = sum +count
        count += 1
    print(sum)
    
    #while 关键字:break,continue
    #break 结束循环。
    #continue 跳出本次循环,继续下一次循环。
    while True:
        print(333)
        print(5455)
        print(222)
        break
        print(888)
    print(666)
    
    while True:
        print(333)
        print(222)
        continue
        print(888)
    print(666)
    #while else:如果while循环,被break打断,则不走else
    count = 1
    while count < 5:
        print(count)
        count += 1
    else:
        print(‘循环正常完毕‘)

  10、运算符

  算数运算

  技术分享图片

  比较运算

  技术分享图片

  赋值运算

  技术分享图片

  逻辑运算

  技术分享图片

  在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

1,3>4 or 4<3 and 1==1
2,1 < 2 and 3 < 4 or 1>2 
3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

  

  

七、python2 跟 python3的区别

  1、Python2x:源码重复,不规范
   python3x:整合源码,更清晰简单优美。

  2、Python2x:默认的编码是ascii,
    解决方式:# -*- encoding:utf-8 -*-
   Python3x:默认的编码是utf-8

  3、Python2x:long int
    print ‘abc‘ print(‘abc‘)

   Python3x:无long int
     print(‘abc‘)

  4、Python2x:raw_input()
    input() 只能输入数字类型
   Python3x:input

八、相关练习

#1、使用while循环输入 1 2 3 4 5 6     8 9 10
n = 0
while n <= 10:
    n += 1
    if n == 7: continue
    print(n,end=" ")

#2、求1-100的所有数的和
num = 1
Sum = 0
while num < 101:
    Sum = Sum + num
    num += 1
print(Sum)

#3、输出 1-100 内的所有奇数
for i in range(1,100,2):
    print(i,end=" ")

#4、输出 1-100 内的所有偶数
for i in range(0,100,2):
    print(i,end=" ")

#5、求1-2+3-4+5 ... 99的所有数的和
1、sum1 = 0
     sum2 = 0
     for i in range(1,100,2):
         sum1 = sum1 + i
     for o in range(0,100,2):
        sum2 = sum2 + o
     print(sum1 - sum2)

2、print(sum([x if x%2 == 1 else -x for x in range(1, 100)]))
3、
    num = 0
    for i in range(100):
        if i%2 == 1:
            num += i
        else:
            num -= i
    print(num)

  

 

python基础一

标签:简单的   core   count   2.4   utf-8   inf   continue   规则   python解释器   

原文地址:https://www.cnblogs.com/dacheng-tony/p/8888984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!