我看的是廖雪峰写的python2.7教程,我记录的都是关键点,或者容易忘记的地方,还请看原版教程,

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000

dir(module)查看模块有哪些方法.help(module)查看每个方法的使用方法及用途,我觉得学习每一门语言的时候都要先学这种方法,才学得更快一点.

人生苦短,我用Python。

这话可不是说说而已,在不涉及到性能要求或者平台要求时,Python无疑是最好的编程语言,听说PHP是世界上最好的语言,没学过,不太清楚。机器学习在不在ARM架构上运行时,通常都是使用Python。

通常ubuntu都是自带Python2.7的,就不介绍如何安装了。

python hello.py

就可以执行了,如果有权限问题,直接sudo chmod a+x hello.py

name = raw_input('please enter your name: ')
print 'hello,', name

print 'The quick brown fox', 'jumps over', 'the lazy dog'

结果为
The quick brown fox jumps over the lazy dog
我的天哪,这个破博客的字体要把我给搞疯了,谁特么设计的这个编辑界面,赶紧把这个产品开了吧,傻子一样,
name = raw_input()
print 'hello,', name

这样就可以在命令行进行输入字符串了。

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容,可以自己试试:
>>> print '''line1
... line2
... line3'''
line1
line2
line3

可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,

python对于字符串的处理也和其他语言一样是非常令人头疼的,以前汉化游戏时,涉及到偏移量就更是头大,

由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

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

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

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

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

要删除list末尾的元素,用pop()方法:

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

要删除指定位置的元素,用pop(i)方法,其中i是索引位置:

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

list里面的元素的数据类型也可以不同,比如:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字。

elif是else if 的缩写,注意缩进。

age = 3
if age >= 18:print 'adult'
elif age >= 6:print 'teenager'
else:print 'kid'

dict

names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]

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

dict的查找速度更快,这个在自然语言处理中有应用,研究这方面的可以深入了解。

由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:

判断key是否存在

>>> 'Thomas' in d
False

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

set需要list作为输入。

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

方法add 、 remove

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

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

abs取绝对值,cmp比较两个数的大小

>>> int('123')
123
>>> int(12.34) 12 >>> float('12.34') 12.34 >>> str(1.23) '1.23' >>> unicode(100) u'100' >>> bool(1) True >>> bool('') False

使用while 循环判断list内的数值为奇数还是偶数

#!usr/bin/python
#coding:utf-8

numbers = [12,5,8,7,3,10]
even = []
odd = []while len(numbers) > 0:number = numbers.pop()if(number%2 == 0):even.append(number)else:odd.append(number)print even
print odd

for循环遍历

#!/usr/bin/python
# -*- coding: UTF-8 -*-for letter in 'Python':     # 第一个实例print '当前字母 :', letterfruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二个实例print '当前水果 :', fruitprint "Good bye!"

索引遍历

#!/usr/bin/python
# -*- coding: UTF-8 -*-

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):print '当前水果 :', fruits[index]print "Good bye!"

判断是否为质数

#!usr/bin/python#coding:utf-8for num in range(10,20):for i in range(2,num):if num%i ==0:j = num/iprint '%d equal %d * %d' % (num,i,j)breakelse:print num,'is a prime number'

break跳出循环

#!usr/bin/python
#coding:utf-8
for letter in 'python':if letter == 'h':breakprint 'char:',letter
var = 10
while var > 0:print 'now:',varvar = var -1if var == 5:break
print "Good bye"

上几天学机器学习的时候死活不明白矩阵转换是怎么回事,看下面的讲解才明白 。

嵌套的列表推导式

列表推导式可以嵌套。

考虑以下的 3x4 矩阵,一个列表中包含三个长度为4的列表:

>>> matrix = [
...     [1, 2, 3, 4], ... [5, 6, 7, 8], ... [9, 10, 11, 12], ... ] 

现在,如果你想交换行和列,可以用嵌套的列表推导式:

>>> [[row[i] for row in matrix] for i in range(4)] [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] 

像前面看到的,嵌套的列表推导式是对 for 后面的内容进行求值,所以上例就等价于:

>>> transposed = []
>>> for i in range(4): ... transposed.append([row[i] for row in matrix]) ... >>> transposed [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] 

反过来说,如下也是一样的:

>>> transposed = []
>>> for i in range(4): ... # the following 3 lines implement the nested listcomp ... transposed_row = [] ... for row in matrix: ... transposed_row.append(row[i]) ... transposed.append(transposed_row) ... >>> transposed [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] 

在实际中,你应该更喜欢使用内置函数组成复杂流程语句。对此种情况 zip() 函数将会做的更好:

>>> list(zip(*matrix)) [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]


转载于:https://www.cnblogs.com/HugoLester/p/7116408.html

pyhton (一)基础相关推荐

  1. Pyhton零基础投喂(综合练习:1.论⽂数据统计)

    1.导⼊package并读取原始数据 # 导⼊所需的package import seaborn as sns #⽤于画图 from bs4 import BeautifulSoup #⽤于爬取arx ...

  2. Python学习笔记:基础

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  3. 从零开始学python数据分析-从零开始学Python数据分析与挖掘 PDF 扫描版

    给大家带来的一篇关于数据挖掘相关的电子书资源,介绍了关于Python.数据分析.数据挖掘方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小67.8 MB,刘顺祥编写,目前豆瓣.亚马逊.当当 ...

  4. Python学习笔记:Day 16 编写移动App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. Python学习笔记:Day15 部署Web App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:Day14 完成Web App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:Day13 提升开发效率

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. Python学习笔记:Day 12 编写日志列表页

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此, 写下这些 ...

  9. Python学习笔记:Day11 编写日志创建页

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  10. Python学习笔记:Day 10 用户注册和登陆

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. VSCode用浏览器预览/运行html文件
  2. 如何将一个彩色图像转换成黑白图像
  3. 怎么看懂别人写的单片机项目代码?
  4. 提高电脑反应速度_设计师笔记本电脑推荐——视觉系ThinkBook 15p创造本
  5. SSH (Secure Shell)详解
  6. Vision Transformer(ViT)PyTorch代码全解析(附图解)
  7. syslog-ng记录history日志
  8. emqtt 试用(七)追踪
  9. python 等值面 插值_利用numpy/scipy从三维阵列计算等值面
  10. 几款Linux系统漏洞扫描、评估工具简介
  11. 只能输入数字或含两位小数的正则
  12. PHP 省市区 最新最全json生成
  13. java程序员挣外快_Java程序员如何赚外快
  14. 机器学习之信用卡诈骗案例总结
  15. 第2章第6节:使用Slider滑杆在指定的范围内选择一个数值 [SwiftUI快速入门到实战]
  16. AI绘画是什么软件?看完你就知道了
  17. 基于c#winform的可视化打印标签模板设计器及Labview与C#调用模板Demo
  18. 中文颜色名称与RGB颜色对照表
  19. 网络安全有哪些岗位,如何成为一位优秀的网络安全工程师?
  20. 矢量在全球规则格网地形上的叠加绘制方法

热门文章

  1. IE6.0,ie7.0与Firefox的CSS兼容性问题
  2. 黑莓GPRS上网套餐包月 300MB流量 不限CMWAP/CMNET
  3. 附加数据时出错,有关详细信息,请单击消息。
  4. Python-sys.argv[]用法
  5. 最全 | Redis可视化工具横向评测
  6. 那些年,我们踩过的 Java 坑
  7. 云计算,拼的就是运维
  8. 详记一次MySQL千万级大表优化过程!
  9. 面试问烂的 MySQL 四种隔离级别,看完吊打面试官!
  10. 分享一波Kafka面试题答案