python学习程序员数据挖掘 机器学习 Python R 人工智能

Python学习(一)

2017-10-13  本文已影响102人  songcmic
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

小结

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

上一篇下一篇

猜你喜欢

热点阅读