Python学习(一)

作者: songcmic | 来源:发表于2017-10-13 21:41 被阅读102次
    python

    原文

    学python的目的

    看过一些资料和教程,在大数据挖掘方面python用的人比较多,作为脚本语言,具有很多其他语言不具备的特点,一些深度学习框架就是用python实现的,例如google的Tensor Flow等,因此我觉得有必要掌握python这门语言。

    了解python

    python简单优雅,通俗易懂,适合开发网络应用,包括网站,后台服务等,还可意义编写一些常用的小工具以及一些脚本任务。当然python也有一些缺点,最大的缺点就是运行慢,相比于C语言非常慢,因为python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,每次运行需要重新翻译,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,而且下次运行不需要在编译了,所以非常快。即使有这个缺点,但是并不很大的影响python的使用,大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。

    python 基础

    这次学习python的教程来自廖雪峰python教程

    第一个Python程序

    >>> print 'hello world!'
    hello world!
    

    输入和输出

    输入

    python2.7提供了输入函数 raw_input()

    >>> name = raw_input()
    Chengs
    >>> name
    'Chengs'
    

    还可以在输入函数中添加提示输入内容的部分

    >>> name = raw_input('input your name:')
    input your name:Chengs
    >>> name
    'Chengs'
    

    输出

    输出可一用 print 函数
    可以直接输出字符串,整数,浮点数等数据类型

    >>> print 'hello','world'
    hello world
    >>> name = 'chengs'
    >>> print name
    'chengs'
    >>> print 3
    3
    >>> a = 100
    >>> b = 200
    >>> print a + b
    3000
    

    print 函数还能对输出结果进行格式化:
    和C语言类似,%s 对应字符串,%d 对应整数

    >>> name = 'chengs'
    >>> print 'hello %s' % name
    hello chengs
    >>> a = 10
    >>> print 'the rate is %d%%' % a
    the rate is 10%
    

    上面代码中用联系两个百分号%%来输出‘%’
    raw_input 和 print 是命令行下最基本的输入输出。

    数据类型和变量

    • 整数,浮点数,字符串,布尔值基本和C/C++类似不在列出。
    • 空值用None表示,它和0不一样。
    • 变量,和C/C++中的要求差不多,可以不需要声明,例如上述代码中的变量。
    • 常量,通常使用大写来表示,例如:PI = 3.1415926,虽然说是常量,但是如果非要修改也拦不住你,只是用大写来表示一个常量,建议最好不要修改,要自觉。

    字符串和编码

    字符串和编码这里有链接,自己写感觉头疼,最讨厌编码问题。

    list&tuple&dict&set类型

    list

    列表list是python内置的一种数据类型,可以随时删除和添加元素

    >>> classmates = ['Michael','Bob','Tracy']
    >>> classmates
    ['Michael','Bob','Tracy']
    

    list的长度可以用len()函数得到

    >>> len(classmates)
    3
    

    list很像C/C++中的数组类型,可以用下表来获取元素

    >>> classmates[0]
    'Michael'
    >>> classmates[1]
    'Bob'
    >>> classmates[2]
    'Tracy'
    

    list也和数组一样有界限,当下表越界之后会报错。
    不仅如此,list有比C/C++中数组更好的功能
    可以用负数作为索引

    >>> classmates[-1]
    'Tracy'
    >>> classmates[-2]
    'Bob'
    

    用-1表示最后一个元素,-2表示倒数第二个元素,以此类推。。。

    list 可以通过append()函数向尾部不断添加元素

    >>> classmates.append('Chengs')
    >>> classmates
    ['Michael','Bob','Tracy','Chengs']
    

    还能将元素插入到指定的位置上

    >>> classmates.insert(1,'Jack')
    >>> classmates
    ['Michael','Jack','Bob','Tracy','Chengs']
    

    删除list中的元素使用函数pop(),默认从最后一个开始删除,还可以指定下标来删除特定的元素

    >>> classmates.pop()
    'Chengs'
    >>> classmates
    ['Michael','Jack','Bob','Tracy']
    >>> classmates.pop(2)
    'Bob'
    >>> classmates
    ['Michael','Jack','Tracy',]
    

    list中的元素可以是相同类型也可以是不同类型

    list中的元素也可以是一个list,如:['hello',[how are you], True, 3,]

    tuple

    tuple和list十分相似,但是tuple的特点是一旦初始化就不能修改了,它没有append()和insert()函数,但是也可以使用下标运算,比如

    >>> classmates('Michael','Bob','Tracy')
    >>> classmates[1]
    'Bob'
    

    如果tuple只有一个元素,声明时需要在后面加一个逗号以区别数学运算的括号

    >>> t = (1,)
    >>> t
    (1,)
    

    dict

    python的dict和C++中 map很相似,是使用键值对key-map来存储的

    >>> d = {'Michale':95,'Bob':75,'Tracy':85}
    >>> d['Bob']
    75
    

    如果使用的某个key不在dict中则会报错,可以使用 in 来判断dict中是否有key

    >>> 'Tomas' in d
    False
    

    dict可以通过get函数来获取value,如果不存在key则返回None或者自己指定返回模teding值

    >>> d.get('Tomas',-1)
    -1
    

    删除一对键值对可以用pop()函数

    >>> d.pop('Bob')
    75
    >>> d
    {'Michale':95,'Tracy':85}
    

    dict的一个特点是其中的key是无序的,不像list中的元素是有序的

    set

    set是一组key的集合,但是不存储value,并且key不能重复,相同的元素自动过滤掉了

    >>> s = set([1,2,3])
    >>> s
    set([1,2,3])
    >>> ss = ([1,2,2,3,3,4,4,5])
    >>> ss
    set([1,2,3,4,5])
    

    可以通过remove()函数来移除某元素

    >>> ss.remove(3)
    >>> ss
    set([1,2,4,5])
    

    set既然是集合,那么就可以有交和并的运算,交运算用&,并运算用 |

    >>> s1 = set([1, 2, 3])
    >>> s2 = set([2, 3, 4])
    >>> s1 & s2
    set([2, 3])
    >>> s1 | s2
    set([1, 2, 3, 4])
    

    条件判断和循环

    条件判断

    条件判断和C/C++中的类似,同样用if-else来表示,但是多重判断使用if-elif-elif...else来实现

    >>> age = 20
    >>> if age >= 18:
    ...     print 'your age is', age
    ...     print 'adult'
    ...
    your age is 20
    adult
    
    >>> age = 3
    >>> if age >= 18:
    ...     print 'adult'
    ... elif age >= 6:
    ...     print 'teenager'
    ... else:
    ...     print 'kid'
    

    for循环

    for...in是一种迭代循环

    >>> names = ['Michael', 'Bob', 'Tracy']
    >>> for name in names:
    ...     print name
    'Michael'
    'Bob'
    'Tracy'
    
    >>> sum = 0
    >>> for x in range(101):
    ...     sum = sum + x
    ...
    >>> print sum
    5050
    

    while循环

    和C/C++中的while循环是十分相似

    >>> sum = 0
    >>> n = 99
    >>> while n > 0:
    ...    sum = sum + n
    ...    n = n - 2
    ...
    print sum
    2500
    

    小结

    第一部分先写到这里,后面再慢慢总结。
    原文

    相关文章

      网友评论

        本文标题:Python学习(一)

        本文链接:https://www.haomeiwen.com/subject/nkytuxtx.html