Python基础知识

一、Python简介        Python 是一种解释型语言,在 Python 中,由于内存管理是由 Python 解释器负责的。        Python 提供了“安全合理”的退出机制,让程序员能掌控局面。一旦你的 Python 由于错误崩溃,解释程序就会转出一个“堆栈跟踪”,那里面有可用到的全部信息,包括你程序崩溃的原因以及是那段代码(文件名、行数、行数调用等等)出错了。这些错误被称为异常。如果在运行时发生这样的错误,Python 使你能够监控这些错误并进行处理。        Python 是用 C 写的,又由于 C 的可移植性,使得 Python 可以运行在任何带有 ANSI C 编译器的平台上。尽管有一些针对不同平台开发的特有模块,但是在任何一个平台上用 Python 开发的通用软件都可以稍事修改或者原封不动的在其他平台上运行。这种可移植性既适用于不同的架构,也适用于不同的操作系统。        Python 的面向对象的特性是与生俱来的。然而,Python 绝不想 Java 或 Ruby 仅仅是一门面向对象语言,事实上它融汇了多种编程风格。例如,它甚至借鉴了一些像 Lisp 和 Haskell 这样的函数语言的特性。        文件扩展名        Python 源文件通常用.py 扩展名。当源文件被解释器加载或者显式地进行字节码编译的时候会被编译成字节码。由于调用解释器的方式不同,源文件会被编译成带有.pyc 或.pyo 扩展名的文件。1.Python可以做什么?  - 日常任务,小工具,eg:备份mp3,系统管理员需要的脚本任务    - 做网站,eg:YouTube,国内的豆瓣,Google,Yahoo    - 网络游戏的后台    - 爬虫  2.python不可以做什么?    - 操作系统只能用C语言编写    - 手机应用,iOS用Object-C, Android用Java    - 3D游戏,最好用C,C++3.各系统下的Python的开发环境:  Windows: 网页链接Linux: yum install python -y    Mac:自带python2.7(OS>10.8)4.python编辑器    linux:vim,emacs,gedit  windows:不要用记事本,会在每个文件的开始加一个特殊字符0xefbbbf,                    notepad++                    sublime                    atom5. python解释器    cpython    ipython:基于cpython,交互方式有所增强    pypy: 对代码进行动态编译,JIT技术(just-in-time compiler,即时编译器),显著提高代码执行速度。    Jpython: java平台上的python解释器,将python代码编译成java字节码执行。    IronPython: 直接将python代码编译成.net的字节码6.安装python[root@localhost ~]# yum install python[root@localhost ipython]# yum install *[root@localhost ~]# python                ##启动python要访问 Python, 除非你已经将 Python 所在路径添加到系统搜索路径之中, 否则就必须输入 Python 的完整路径名才可以启动 Python。Python 一般安装在 /usr/bin 或/usr/local/bin子目录中。7.安装ipython  #yum install *openpgm-5.2.122-2.el7.x86_64.rpmpython-ipython-3.2.1-1.el7.noarch.rpmpython-ipython-console-3.2.1-1.el7.noarch.rpmpython-ipython-gui-3.2.1-1.el7.noarch.rpmpython-jsonschema-2.3.0-1.el7.noarch.rpmpython-mistune-0.5.1-1.el7.x86_64.rpmpython-path-5.2-1.el7.noarch.rpmpython-pip-7.1.0-1.el7.noarch.rpmpython-pygments-1.4-9.el7.noarch.rpmpython-simplegeneric-0.8-7.el7.noarch.rpmpython-zmq-14.3.1-1.el7.x86_64.rpmzeromq3-3.2.5-1.el7.x86_64.rpm    #ipython                  ##启动ipython二、Python基础知识1.Python输出print:    注意:不加引号默认是变量    可以作运算:  In [2]: a=hello                    ##不加引号默认是变量    ---------------------------------------------------------------------------    NameError                                Traceback (most recent call last)in()    ----> 1 a=hello

NameError: name 'hello' is not defined

In [3]: a="hello"                  ##定义字符串变量a

In [4]: print a                          hello

In [5]: print 100+100          ##做运算    200

In [6]:

print 语句,与字符串格式运算符(% )结合使用,可实现字符串替换功能

示例:

>>> print "%s is number %d!" % ("Python", 1)Python is number 1!

2.输入:raw_input()

下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。

示例:

In [19]: 9-3Out[19]: 6

In [20]: _Out[20]: 6

练习1:输入两个数字,相加后输出:

#!/usr/bin/python

a = raw_input("input first number:")

b = raw_input("input second number:")

print int(a)+int(b)

3.Python脚本

1)Python 脚本使用扩展名 .py

2)脚本启动行

#!/usr/bin/python    ##!后面跟的路径是你python解释器的绝对路径

当你不能确定 Python 的具体路径或者 Python 的路径经常变化时(但不能挪到系统搜索路径之外), env 就非常有用。它会帮你在系统搜索路径中找到 python 解释器。

如果你的系统拥有 env, 你的启动行就可以改为下面这样:

!/usr/bin/env python

或者, 如果你的 env 位于 /bin 的话,

#!/bin/env python

3)当python脚本中有中文时,需要制定编码格式:

#coding:utf-8

#coding=utf-8

#encoding:utf-8

#encoding=utf-8

#-*-coding:utf-8-*-

4)执行python脚本

a.不管哪种 Unix 平台, Python 脚本都可以象下面这样,在命令行上通过解释器执行:$ python script.py

b.给python脚本一个执行权限,直接用绝对路径的方式执行

$ ./script.py          ##当前工作路径在脚本所在路径时,可以这样执行

5).python IDE

安装pycharm:

a.安装包pycharm-community-4.0.1.tar.gz

b.解压缩

[root@localhost software]# tar zxf pycharm-community-4.0.1.tar.gz -C /mnt/c.进入解压后目录

[root@localhost bin]# cd /mnt/pycharm-community-4.0.1/bind.[root@localhost bin]# ./pycharm.sh

之后就进入图形窗口

4.注释和大部分脚本及 Unix-shell 语言一样,Python 也使用 # 符号标示注释,从 # 开始,直到一行结束的内容都是注释。

5.变量定义原则

首字母小写,见名知义,驼峰标示,数字不能作首字母

python变量名是大小写敏感的

Python 是动态类型语言, 也就是说不需要预先声明变量的类型。 变量的类型和值在赋值那一刻被初始化。

Python 不支持 C 语言中的自增 1 和自减 1 运算符, 这是因为 + 和 - 也是单目运算符,Python 会将 --n 解释为-(-n) 从而得到 n , 同样 ++n 的结果也是 n.

Python 也支持增量赋值,也就是运算符和等号合并在一起

注意:python中两个变量相同时,两个名字指向的同一个内存地址

练习2:

交互模式:计算一月和四月分别有多少分钟,使用变量daysPerMonth,hoursPerDay,minutesPerHour    写脚本:

#!/usr/bin/python

#coding=utf-8

daysPerMonth1=31

daysPerMonth2=30

hoursPerDay=24

minutesPerHour=60

print "1月有",daysPerMonth1*hoursPerDay*minutesPerHour,"分钟"

print "4月有",daysPerMonth2*hoursPerDay*minutesPerHour,"分钟"

6.数值类型

(1)整形int:

(2)长整形long:

定义一个long变量a=1L

In [14]: a=1L

In [15]: type(a)

Out[15]: long

从长远来看, 整型与长整型正在逐步统一为一种整数类型。从 Python2.3 开始,再也不会报整型溢出错误, 结果会自动的被转换为长整数。在未来版本的 Python 中, 两种整数类型将会无缝结合, 长整数后缀 “L”也会变得可有可无。

(3)浮点型float:

In [9]: a=5        In [10]: type (2)        Out[10]: int

In [11]: print a/2        2                      ##除数被除数都是整形时,结果为整形,当二者其一是浮点型,答案为浮点型        In [6]: a=1.4

In [7]: type (a)        Out[7]: float

In [8]: print a/2        0.7

浮点型的另一种表示方法:科学计数法            In [12]: a=1.2e-3

In [13]: print a            0.0012

(4)复数:complex        定义一个复数:        In [16]: a=2j-3        In [18]: type(a)        Out[18]: complex

(5)布尔值:True,False

7.运算符和表达式:

逻辑运算符:not,or,and

算术运算符:+,-,*,/,%,**

关系运算符:>,<,>=,<=,!=,==

赋值运算符:=,+=,-=*=,/=,%=

练习3:四则表达式,用if语句实现    if判断语句后要加:表示缩进

#!/usr/bin/python

#coding=utf-8

num1 = raw_input("input first number:")

operator = raw_input("input operater:")

num2 = raw_input("input second number:")

if operator == "+":

print num1,operator,num2,"=",int(num1)+int(num2)

elif operator == "-":

print num1,operator,num2,"=",int(num1)-int(num2)

elif operator == "*":

print num1,operator,num2,"=",int(num1)*int(num2)

elif operator == "/":

print num1,operator,num2,"=",float(num1)/float(num2)

else :            print "operator error!"

三、序列

1.字符串

定义:

1)str = “hello”

2)str = ‘hello’

3)str = """hello""" 或 str = '''hello'''  ##不会改变引号内的格式

In [1]: str = "hello"

In [2]: print str            hello

In [3]: str = 'hello'

In [4]: print str            hello

In [5]: str = """hello              ...:        i              ...:        am              ...: """

In [6]: print str            hello                i                am

In [7]: str = '''hello              ...:        i              ...:        am              ...: '''

In [8]: print str            hello                i                am

索引:

In [38]: a[1]

Out[38]: 'b'

字符串连接:

In [39]: a[1]+a[4]

Out[39]: 'be'

切片:

In [40]: a[1:4]

Out[40]: 'bcd'

In [41]: a[1:4:2]        Out[41]: 'bd'

In [42]: a[-1:-4]        Out[42]: ''

In [43]: a[-1:-4:-1]        Out[43]: 'edc'

In [44]: a[-1:-4:-2]        Out[44]: 'ec'

In [45]: a[:]        Out[45]: 'abcde'

求字符串长度:

In [1]: a="oiuy"

In [2]: len(a)

Out[2]: 4

*字符串重复:

In [3]: print "wu"*20

wuwuwuwuwuwuwuwuwuwuwuwuwuwuwuwuwuwuwuwu

判断字符串是否在某个字符串内:

In [1]: a="oiuy"

In [4]: "ad" in a

Out[4]: False

In [5]: "oi" in a

Out[5]: True

练习4:输入一个字符,判断是否在字符串中

#!/usr/bin/env python

str1="ljsoioi"

a=raw_input("input a word:")

if a in str1:

#print str1," has ",a

print "%s has %s" %(str1,a)    ##两个都可以

else:

#print str1," has not ",a

print "%s has not %s" %(str1,a)

字符串内容的比较:

In [1]: str1="2531424"

In [2]: max(str1)    ##求字符串里的最大值

Out[2]: '5'

In [3]: min(str1)    ##求字符串里的最小值

Out[3]: '1'

In [4]: str1="45"

In [5]: str2="123"

In [6]: cmp(str1,str2)    ##比较俩个字符串的大小,一位一位比

Out[6]: 1        ##4>5,所以是1

可以将列表和元组当成普通的“数组”,它能保存任意数量任意类型的 Python 对象。和数组一样,通过从 0 开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象。列表和元组有几处重要的区别。列表元素用中括号( [ ])包裹,元素的个数及元素的值可以改变。元组元素用小括号(( ))包裹,不可以更改(尽管他们的内容可以)。元组可以看成是只读的列表。通过切片运算( [ ] 和 [ : ] )可以得到子集,这一点与字符串的使用方法一样。

学好python你需要一个良好的环境,一个优质的开发交流群,群里都是那种相互帮助的人才是可以的,我有建立一个python学习交流群,在群里我们相互帮助,相互关心,相互分享内容,这样出问题帮助你的人就比较多,群号是301,还有056,最后是051,这样就可以找到大神聚合的群,如果你只愿意别人帮助你,不愿意分享或者帮助别人,那就请不要加了,你把你会的告诉别人这是一种分享。如果你看了觉得还可以的麻烦给我点个赞谢谢

学习是对自己最好的投资,而机会属于有准备的人,这是一个看脸的时代,但最终拼的是实力。人和人之间的差距不在于智商,而在于如何利用业余时间,所以没有等出来的辉煌,只有干出来的精彩。其实只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间,而你之所以还没有变强,只因你还不够努力,要记得付出不亚于任何人的努力。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容