一、python的历史

  python的创始人Guido van Rossum,现就职于Dropbox公司。

  1989年12月份诞生了python1.0

  2000年10月16日发布了python2.0

  2008年发布python3.0,但由于3.0不兼容当时的2.4,因此推广非常缓慢。

  为解决此问题,当年便推出了python2.6版本,其兼容了2.4和3.0两个版本。在这之后又推出了python2.7,支持了更过的3.x版本的特性。但随着python3的推广,python2终将会被取代,毕竟,python2.6和2.7只是一个过渡的版本。

二、编程序语言的分类

  1、编译型:

    通过编译器将程序代码编译成可执行代码,即一次性把所有的代码转换成机器语言,然后写成可执行文件。下次执行前不需要再次编译。

    优缺点:执行速度最快的编程语言,但每次只要进行小小改动都需要进行漫长的编译。开发效率比较低。

    属于编译型语言的有:C/C++、Pascal/Object Pascal(Delphi)、VB等

  2、解释型

    在每次执行程序前,需要通过解释器将代码转换成机器语言。

    优缺点:由于每次执行程序的时候都要先通过解释器转换计算机才能执行,因此执行速度稍慢。不过对于初学者来说的我,这点速度可以忽略不计。其开发效率很高,比编译型的语言高的不是一星半点。

    属于解释型语言的有:Java、JavaScript、VBScript、Perl、Python等

三、为什么学python

  1、入门比较容易、代码简明易懂,对于患有严重强迫症的我来说非常适合(强制缩进

  2、开发效率高,python拥有非常强大的第三方库,基本上你想实现的功能库里都有,大大降低开发周期

  3、可移植性,python属于跨平台的编程语言,基本上可以直接运行在任意操作系统上。另外java之所以流行,就是由于他是第一个跨平台的编程语言。

  下面三点对于我这种初学者来说还暂时接触不到,因此复制粘贴一下

  4、高级语言——当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节

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

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

四、python基本操作



  1、变量



    定义:可变的量,存储数据,存储程序运行中的中间运算结果



    定义的规则:



      1)变量名只能是字母、数字或下划线的任意组合



      2)变量第一位不能是数字



      3)关键字不能声明为变量名,例如:yield,finally,assert



      4)要有描述性



      5)类名首字母大写



      6)常量所有字母大写



  2、数字类型



    整数、浮点数、复数



  3、数据类型



    1)布尔:只有两个值,True(1)、False(0)



    2)字符串



# 去空格
name = '  alex  '
strip()    ->    name.strip()    ->    'alex'

# 统计长度
name = 'alex li'
len()    ->    len(alex)    ->   7

# 切片(顾头不顾尾)
name.strip()[0:3]    ->    ale

#字符串拼接
msg = 'my name is ' + name + 'and i am' + 'old'    #开辟多个内存空间
msg = 'my name is %s and i am old' % name  #只开辟一块内存空间



    3)列表:增删改查



names = ['alex','jack']
# 改
names[1] = 'ada'
# 增
names.append('rose')
names.insert(2,'jack')
names.insert(1,'leon')
# 删
del names[2]
names.remove('rose')
names.append('ada')
# 统计
names.count('ada')
# 查
names.index('ada') #从左开始找,返回第一个位置
# 排序
names.sort() #按照ascii码排序,python3中数字和字符串不能一起排序
names.reverse() #反过来排序
# 切片
names[3:5]
names[-3:]
names[0:-1:2] #步长为2,跳着取



    4)运算符



+    -    *    /

 

 

%

 取模

 返回除法的余数,用于判断奇偶数

**

 幂运算 

 返回x的y次幂

//

 除法取整数 

 返回商的整数部分

==

 

 

!=

 不等于 

 <>在python2中也是不等于,python3中不使用

>       <       >=       <=

 

 

=

 赋值

 

+=    -=    *=    /=    %=    **=    //=

 a+=1 => a=a+1

 

and       or       not

 

 

in

在.....中 

 

not in

不在......中 

 

is

是...... 

 

not is

不是...... 

 



 



names = [1,2,3,4,5,6,90]
8 in names -> False
6 in names -> True
type(8) is int
type('sddd') is str
type(['a','b']) is list



    5)位运算

 



a = 60       # 0  0  1  1  1  1  0  0
b = 13       # 0  0  0  0  1  0  1  0
a & b = 12   # 0  0  0  0  1  0  0  0   与运算:都是1为1,其他都为0
a | b = 61   # 0  0  1  1  1  1  1  0   或运算:只要是1就为1,都是0为0
a ^ b = 49   # 0  0  1  1  0  0  0  1   异或运算:一样的为0,不一样的为1~a = -61     # 1  1  0  0  0  0  1  1   按位取反,第一位为负数,结果为-61
a >> 1 = 30  # 往右移一位相当于除以2,效率比除以2高
a << 1 = 120 # 往左移一位相当于乘以2,效率比乘以2高



 

    6)三元运算



#!/usr/bin/env python
a = 3
b = 1
# if a > b:
#     c = a+b
# else:
#     c = a-b
# print(c)

c = a+b if a> b else a-b
print(c)



 

 

  4、用户交互



    多行注释 : '''xxx'''



    用户交互:input('xxxx')



 



  5、简单的流程控制



    

python的发行版本分为 python发展至今有哪些版本_ViewUI


小练习:


  1、猜数字


#!/usr/bin/env python
# 无限制猜数字
# age = 56
# n = 1
# while True:
#     number = input("input number: ").strip()
#     while not number.isdigit():
#         number = input("input number: ").strip()
#     number = int(number)
#     if number == age:
#         print("猜对了")
#         break
#     elif number > age:
#         print('猜大了,还有%s次机会' % (3-n))
#     else:
#         print('猜小了,还有%s次机会' % (3-n))
#     n += 1

# 3次机会
# age = 56
# for i in range(1, 10):
#     if i > 3:
#         print("3次都没猜出来,拜拜了您呐~")
#         break
#     else:
#         number = input("input number: ").strip()
#         while not number.isdigit():
#             number = input("input number: ").strip()
#         number = int(number)
#         if number == age:
#             print("猜对了")
#             break
#         elif number > age:
#             print('猜大了,还有%s次机会' % (3-i))
#         else:
#             print('猜小了,还有%s次机会' % (3-i))


# 每猜3次提示一次是否继续,直到外层循环结束
age = 56
count = 1
for i in range(1, 10):
    if count == 4:
        user_confirm = input("你还想不想玩了?")
        if user_confirm == 'y':
            count = 0
            pass
        else:
            print("see you~")
            break
    else:
        number = input("input number: ").strip()
        while not number.isdigit():
            number = input("input number: ").strip()
        number = int(number)
        if number == age:
            print("猜对了")
            break
        elif number > age:
            print('猜大了,还有%s次机会' % (3-count))
        else:
            print('猜小了,还有%s次机会' % (3-count))
    count += 1


  2、输入分数,查看等级


#!/usr/bin/env python
while True:
    score = input('input score: ').strip()
    if score.isdigit():
        score = int(score)
        # if score <= 100 and score >= 0:
        if 0 <= score <= 100:
            if score >= 90:
                print('A')
            elif score >= 80:
                print('B')
            elif score >= 70:
                print('B-')
            elif score >= 60:
                print('C')
            else:
                print('D')
        else:
            print('input error')
    elif score == 'exit':
        break
    else:
        print('input error')


  3、break和continue

    break:跳出当前整个循环

    continue:跳出本次循环,进入下一次循环


#!/usr/bin/env python
for i in range(10):
    if i == 5:
        for j in range(10):
            print("inner loop", j)
            if j == 6:
                break
        continue
    print("loop", i)