目录

Python——基础篇【一】

1、学习Python目的

2、Python简史介绍

3、Python3特性

4、Hello World程序

5、变量与赋值

6、用户交互

7、条件判断与缩进

8、循环控制

9、循环次数限制

10、简单的嵌套循环

11、常用数据类型

12、字符串格式化

13、列表常用操作

14、列表后续操作

15、文件基本操作

1、学习Python目的:

1、学完之后,可以做开发运维监控、自动化软件、聊天软件、BBS、博客和网站。

2、投资自己,结识更多的朋友,变更更优秀的人

Python——基础篇【一】

2、Python简史介绍

python创始人Guido,荷兰人,Python源自他所挚爱的电视剧Monty Python's Flying Circus。Python编译器使用C语言实现,能够调用C语言库文件。1991年初,Python发布了第一个公开发行版。

Python版本

Python1.0   1994年

python2.0   2000年(加入了内存回收机制)

Python2.4    2004年(Pyhton诞生了目前最流行的WEB框架Django)

Python2.5    2006年

Python2.6    2008年(过渡版本,过渡到3.0版本)

Python2.7    2010年(过渡版本,2014年11月官方声明,Python 2.7 支持到2020年,2.7是最后一个版本,不会出现2.8版本,官方希望大家都尽快切换到3.4版本)

Python3.0    2008年 (不兼容2.0版本语法和功能)

Python3.2    2011年

python3.3    2012年

Python3.4    2014年

Python3.5    2015年

注释:

1、2008年python 2.6和Python3.0同时发布,2.0里面有重复的功能重复的模块,发布3.0目的是去繁从简,加入新的功能,把很多语法合并在一起等等,从而有了3.0版本.(2008年的时候,大家还用的是2.4版本,3.X版本不兼容2.X版本语法和功能)

Python应用:

Web Programming(web开发方向): Django,pyramid,Bottle,Tornado,Flask,web2py(列出的是主流web框架)

GUI Development(图形界面开发):wxPython,tklnter,PyGtk,PyGObject,PyQt(做图形界面越来越少,现在流行H5)

Scientific and Numeric(科学计算):Scipy,pandas(作金融分析),IPython

software Development(软件开发):Buildbot(程序集成、自动测试、自动部署),trac(处理bug),Roundup(处理Bug)

System Administration:Ansible,Salt,OpenStack(虚拟化)(运维三剑客)

Twisted 是Python下最优秀的异步网络框架,目前还不支持python3.0,是因还没改完(目前进度:https://twistedmatrix.com/trac/milestone/Python-3.x)

使用Python开发的实例

Facebook、Youtube、Yelp(product)(国外的大众点评)、Quora(国外的知乎)、Instagram、豆瓣、知乎、雅虎、SOHO、腾讯(蓝鲸)、网易、金山

3、Python3新特性

print()

Old: print "The answer is", 2*2
New: print("The answer is", 2*2)
Old: print x, # Trailing comma suppresses newline
New: print(x, end=" ") # Appends a space instead of a newline
Old: print # Prints a newline
New: print() # You must call the function!
Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)
Old: print (x, y) # prints repr((x, y))
New: print((x, y)) # Not the same as print(x, y)!

ALL IS UNICODE NOW
从此不用为编码错误而烦恼

(A, *REST, B) = RANGE(5)

(a, *rest, b) = range(5)

Python2.x到Python3.0新旧模块name对照表

还有谁不敢支持Python3?

目前除了Twisted不支持Python3,其他主流模块都支持,(Twisted 是Python下最优秀的异步网络框架,目前还不支持python3.0,是因还没改完,目前修改进度:https://twistedmatrix.com/trac/milestone/Python-3.x

总结:哪些Python2的语法在3里变了?

1、1/2终于等于0.5了

2、print“hello world”变成了print(“hello world!”)

3、raw_input没了

4、class Foo:写法不能用了,只能class Foo(object)

安装

Windows:

1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python27
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python27,切记前面有分号

注:在安装Python过程中,可以勾选添加环境变量会自动添加

更新Python :

卸载重装即可

Linux:

无需安装,原装Python环境

ps:如果自带2.6,请更新至2.7

更新Python

Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python!

查看默认Python版本
python -V 1、安装gcc,用于编译Python源码
yum install gcc
2、下载源码包,https://www.python.org/ftp/python/
3、解压并进入源码文件
4、编译安装
./configure
make all
make install
5、查看版本
/usr/local/bin/python2.7 -V
6、修改默认Python版本
mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum执行异常,修改yum使用的Python版本
vi /usr/bin/yum
将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6

4、Hello World程序

python3 #进入交互器

print("Hello World!")

\n  #换行
后缀名

hello.py(python)、hello.sh(shell)、hello.java(java)、hello.c(C)、hello.php(PHP)、hello.rb(ruby)

vim hello.py   #编辑python文件

#!/usr/bin/python3   #默认位置,python升级之后默认在/user/local/bin下,如果还写#!/usr/bin/python可能调用还是原来版本的python

#!/usr/bin/env python   #最安全的写法

print("hello world!")(wq!)

python hello.py #执行python文件

chmod +X hello.py #给python加可执行权限

ll hello.py   #查权限

./hello.py  #执行python

5、变量与赋值

变量、注释、数据类型

变量传参,变量存在的意义是在程序中存储一些临时的数据,在程序运行中不断的用来调用

变量起名

1、显式(通俗易懂)

2、nums_of_alex_gf = 19

3、NumsOfAlexGf = 2

4、names-of-alex-gf = 22(不合法)

5、5name = 数字不能开头,可以写成na5me=

6、!name特殊字符不能有,!@#¥%……&

7、name of teacher = 不能有空格

8、某些关键字不能为变量名

 
a=3
b=a
id(a),id(b) #查看变量内存地址
 

6、用户交互

name=input("Please input your name:")

jack

print(jack)

eval()#python3.0查找内存里的变量

7、条件判断与缩进

sex = input("input your gender:")
if sex == "girl":
print("I would like to have a little monkey with jack")
elif sex =="man":
print("Going to homesexual!...")
else:
print("Pervert!")

8、循环控制

(猜数字)

while true: # 死循环

lucky_num = 19
input_num = -1
while lucky_num != input_num:
input_num = int(input('input the guess num:')) #int是把字符串格式转为数字格式
if input_num > lucky_num:
print("the real num is smaller.")
elif input_num < lucky_num:
print("the real num is bigger.")
print("Bingo!")

break #结束整个循环

while True:
input_num = int(input("input the guess num:"))
if input_num == lucky_num:
print("bingo!")
break
elif input_num >lukcky_num:
print("the real numer is smaller.")
else:
print("the real num is bigger...")

 9、循环次数限制

lucky_num = 19
input_num = -1
guess_count = 0
while guess_count < 3:
print("guess conut",guess_count)
input_num = int(input('input the guess num:'))
if input_num > lucky_num:
print("the real num is smaller.")
elif input_num < lucky_num:
print("the real num is bigger.")
else:
print("Bingo!")
break
guess_count += 1 #guess_count=guess_count+1
else:
print("Too many retrys!")

for循环

for i in rang(3):
print i
lucky_num = 19
input_num = -1
for i in range(3):
input_num = int(input('input the guess num:'))
if input_num > lucky_num:
print("the real num is smaller.")
elif input_num < lucky_num:
print("the real num is bigger.")
else:
print("Bingo!")
break
else:print("Too many retrys!")

10、简单的嵌套循环

for j in range(5):
for i in range(10):
if i <5:
continue #跳出本次循环,继续下一次循环
if j>3:
break #跳出整个循环
print(i)
count = 0
while True:
print("count")
count +=1
if count >=5:
break

11、常用数据类型

数据类型:

a=2**31

a

type(a) #显示数据类型

uname -a #linux版本检查

12、字符串格式化

name = input("name:").strip()
age = input("age:").strip()
job = input("job:").strip() #print("Information of []:"+ name + "\nName:[]"+name+"\nAge;[]"+age+"\nJob:[]"+job)
msg='''
Information of %s:
Name:%s
Age:%s
Job:%s
'''%(name,name,age,job)
print(msg)
#print("Information of %s:\nName:%s\nAge:%s\nJob:%s" %(name,name,age,job)) #%s 字符串
#%d 数字
#%f 浮点
#''''''1、注释 2、表示段落

13、列表常用操作

.strip()  #去掉两边空格,也可以指定去除某个字符

name_list = ["alex","65b","tenglan"]

name_list[1]
name_list[2]
#1,2为索引
name_list.append(“eric”) #追加
.count #统计
.extend #扩展
.index #索引
.insert #插入
.pop #删除一个
.remove #删除指定的一个
.reverse #反转
.sort #排序 help(name) #查看方法
dir(name_list) #查看列表功能

14、列表的后续操作

a[0:2]  #切片

a[0:5:3]   #隔一个切一个

a[-2:-1]   #取后两个

a.extend(b)

 

15、文件基本操作

file_obj = open("路径",“模式”)

obj.read()  #读取所有内容

obj.readlines() #读取所有行分隔成字符串

#每次仅读取一行数据

for line in obj:

      print iine

obj.write("内容") #写内容

obj.close()  #关闭文件

f = open("test.log","w")

f.write("This is the first line\n")
f.write("This is the second line\n")
f.write("This is the 3 line\n")
f.write("This is the 4 line\n")
f= open("test.log","r")

# print (f.readlines())
for line in f:
if"3" in line:
print("this is the third line")
else:
print (line)

 追加

f=open("test.log","a")
f.write("6\n")
f.write("7\n")
f.close()

写读‘

f=open("test.log","w+")
f.write("new line\n")
print("data:",f.read())
f.close()

Python学习笔记——基础篇【第一周】——变量与赋值、用户交互、条件判断、循环控制、数据类型、文本操作的更多相关文章

  1. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  2. Python学习笔记——基础篇【第六周】——面向对象

    Python之路,Day6 - 面向对象学习 本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.       同时可参考链接: http:// ...

  3. Python学习笔记——基础篇【第七周】———类的静态方法 类方法及属性

    新式类和经典类的区别 python2.7 新式类——广度优先 经典类——深度优先 python3.0 新式类——广度优先 经典类——广度优先 广度优先才是正常的思维,所以python 3.0中已经修复 ...

  4. Python 学习笔记---基础篇

    1. 简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200 import subprocess cmd="cmd.exe" b ...

  5. Python学习笔记——基础篇2【第三周】——计数器、有序字典、元组、单(双)向队列、深浅拷贝、函数、装饰器

    目录 1.Python计数器Counter 2.Python有序字典OrderredDict 3.Python默认字典default 4.python可命名元组namedtuple 5.Python双 ...

  6. Python学习笔记——基础篇【第五周】——正在表达式(re.match与re.search的区别)

    目录 1.正在表达式 2.正则表达式常用5种操作 3.正则表达式实例 4.re.match与re.search的区别 5.json 和 pickle 1.正则表达式   语法: import re # ...

  7. Python学习笔记——基础篇【第五周】——模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  8. Python学习笔记——基础篇【第五周】——os模块和sys模块

    OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录 ...

  9. Python学习笔记——基础篇【第五周】——正则表达式(re)

    目录 1.简介 2.字符匹配 1.简介:就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译 ...

随机推荐

  1. C/C++基础知识总结——继承与派生

    1. 类的继承与派生 1.1 派生类的定义 (1) 定义规范 class 派生类名: 继承方式 基类1名, 继承方式 基类2名... { ...派生类成员声明; }; (2) 从以上形式上看可以多继承 ...

  2. [转]Resolving kernel symbols

    原:http://ho.ax/posts/2012/02/resolving-kernel-symbols/ KXLD doesn't like us much. He has KPIs to mee ...

  3. [转]gdb 调试 objc

    源:http://bbs.pediy.com/showthread.php?t=159549 3. 在没有 symbols的情况下,想要下断 objc method 或者 private framew ...

  4. iOS关于应用内分享

    iOS7.0增加了AirDrop功能,可知在未来,手机信息资源的直接分享会越来越重要.而我们在iPhone系统短信点击照片会看到右上角的分享按钮,点击可以弹出一系列的应用菜单,允许用户把这张图片分享到 ...

  5. Orchard网上商店模块

    从头开始编写一个Orchard网上商店模块(1) - 介绍 原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-w ...

  6. 【转】CSS中position属性( absolute | relative | static | fixed )详解

    我们先来看看CSS3 Api中对position属性的相关定义: static:无特殊定位,对象遵循正常文档流.top,right,bottom,left等属性不会被应用. relative:对象遵循 ...

  7. linux 安装svn,并设置钩子来同步更新

    linux安装svn下载 http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz 和 http://subversion.tigr ...

  8. 一种利用异常机制基于MVC过滤器的防止重复提交的机制分享

    防止重复提交验证机制 某些时候因为系统反应稍慢,急性子用户可能不耐烦会进行重复的提交,这个操作不仅可能造成系统负担,也可能产生垃圾数据. 出现这两种状况都是我们不希望的. 为此,在公司项目系统设计了以 ...

  9. enode框架step by step之Staged event-driven architecture思想的运用

    enode框架step by step之Staged event-driven architecture思想的运用 enode框架系列step by step文章系列索引: 分享一个基于DDD以及事件 ...

  10. JVM参数设置、分析

    不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java ...