python基础知识汇总(实用)

python基础知识汇总(实用)

什么是python

官方解释:一种解释型的面向对象的带有动态语义高级程序设计语言

优点:简单、强大,程序员在编程时能够保持自己的风格,容易实现自己想要的功能,程序清晰易懂

历史: Guido van Rossum在20世纪90年代初创造了这门语言。

  1. 使用包管理器安装python,如通过yum安装;
  2. 从源文件编译安装python:
  1. 下载源代码;下载扩展名为.tgz的文件保存到本地某一目录下;
  2. 进入该目录,使用tar –xzvf python-2.6.4.tgz对文件解压缩;
  3. 进入已解压的文件目录,cd python-2.6.4运行以下命令:

./configure  --prefix=$(pwd)

make

make install

  1. 将当前文件夹路径放到环境变量PYTH中。

在python脚本首行写上“#!/usr/bin/env python”后,不管python二进制文件在哪里,程序都会自动执行。

若系统中安装了新版本的python,同时旧版本仍然存在,那么应该直接指明新版本路径,如:#!/usr/bin/python2.6

    1.  交互式解释器

安装了python并设置了环境变量后,输入python进入交互式解释器。

在交互式解释器中可以直接计算出表达式的值,如

输入1+1后按回车,输出2

输入1/2,输出0(因为计算结果的小数部分被截除了)

输入1/21.0/2,输出0.5

输入1//2,输出0;输入1.0//2.0,输出0.0(//双斜线表示进行整除)

    1.  函数、变量、模块

内建函数:

input():使用input函数接收输入值,如x=input(),输入12,则x=12

pow(2,3)=8

abs(-10)=10

round(1.8/2)=1.0, 四舍五入了

模块:

  1. math.floor(1.8/2)=0.0,  向下取整

floor函数不能直接用,要先加载math模块: import math

import math

int(math.floor(32.9))

输出:32

(2)另外用下面的方式直接import函数,不需要在函数前加上模块名了:

from math import floor

int(floor(32.9))

变量:

可以使用变量来引用函数,即将某个函数赋给一个变量:

foo=math.sqrt

foo(4) 

输出:2.0

    1.  字符串
  1. 字符串拼接:+

x="I'm x! "

y="I'm y! "

x+y

输出:"I'm x! I'm y! "

  1. 数值转化成字符串

str、repr与反引号``:可将数值转化成字符串

str 会把值转换为合理形式的字符串;

repr会创建一个字符串,以合法的python表达式的形式来表示值。

如:print str("Hello world!")   输出:Hello world!

print repr("Hello world!")  输出:'Hello world!'

反引号:``  (python3.0中已不再使用反引号,建议用repr)

可以将数字与字母连接在一起,如:

temp=42

print "temp is: " + `temp` 输出:temp is: 42

print `temp` + "and" + `123` 输出:42and123

使用用repr或str:

print "temp is: " +repr(temp)  输出:temp is: 42

print "temp is: " +repr(temp) + str("123")  输出:temp is: 42123

  1. 多行字符串

长字符串跨多行时,用三个单引号或三个双引号,这样在字符串中可以同时使用单引号和双引号。

普通字符串跨多行时,也可在行尾用反斜线”\”,如:

print “Hello, \

how are you? “

输出:Hello, how are you?

  1. 原始字符串

输出原始字符串时字符串前面带’r’,如:

print r'C:\programe file\now\new' 输出:C:\programe file\now\new

print r"C:\new let's go!"  输出:C:\new let's go!

Python中最基本的数据结构是序列(sequence),序列中每个元素被分配一个序号——即元素的位置,也称为索引,第一个索引是0,最后一个元素索引标记为-1。

Python中包含6种内建序列:

列表、元组、字符串、unicode字符串、buffer对象、xrange对象。

    1.  序列的操作

所有序列类型都可以进行的特定操作如下:

索引(indexing)

分片(sliceing)

加(adding)

乘(multiplying)

成员资格(检查某个元素是否属于序列)

        1. 索引

序列中所有元素都是有编号的,从0开始递增。元素可以通过编号进入访问。

实例:

#!/usr/bin/python

months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec']

endings = ['st','nd','rd'] + 17* ['th'] + ['st','nd','rd'] + 7* ['th'] + ['st']

year = raw_input("year: ")

month = raw_input("month: ")

day = raw_input("day: ")

month_num = int(month)

day_num = int(day)

month_name = months[month_num-1]      #索引

day_ord = day + endings[day_num-1]        #索引

print month_name + ' ' + day_ord + ' ' + year

输入year: 2011

month: 12

day: 21

输出:Dec 21st 2011

        1. 分片

使用索引可以访问单个元素,使用分片可以访问一定范围内的元素

分片需要提供两个索引作为边界,用冒号分隔两个索引,第1个索引的元素包含在分片内,第二个索引的元素不包含在分片内,如:

tag='http://www.python.org'

tag[7:21]

输出:'www.python.org'

注:tag[7:21],取第7到第20个字符。

若想包含从第一个开始(或直到最后一个结束)的字符串,可以将前一个(或后一个)索引置空,如:tag[:5], tag[7:], tag[:]

步长:分片中的第三个值(开始与结束索引之后)

如:

idx=[1,2,3,4,5,6,7,8,9,10]

idx[::2]    输出:[1, 3, 5, 7, 9]

idx[::-1]    输出:[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

        1. 序列加法

两种相同类型的序列才能进行连接操作,如:

[1,2,3] + [4,5,6] 输出:[1, 2, 3, 4, 5, 6]

‘hello’ + ’_’ + ‘world’ 输出:’hello_world’

不同类型序列不能相加,如:[1,2,3] + ‘hello’ 提示出错

        1. 序列乘法

数字x与序列相乘后,原序列被重复x次。

[12] * 10  输出:

列表初始化,创建10个元素空间但没有值:[None] * 10

        1. 成员资格

in运算,检查一个值是否在序列中。

    例1:

users=['taobao', 'alibaba', 'root']

input_name=raw_input('Enter your user name: ')

if input_name in users:

    print input_name + ' is in users!'

else:

print 'Warning! ' + input_name + ' is not in users!'

   

例2:

db = [

        ['smith','4309'],

        ['jones','0921'],

        ['alber','8745'],

      ]

username = raw_input('user name: ')

pin = raw_input('pin code: ')

if [username, pin] in db:

        print 'Access granted!'

else:

        print 'Warning: username or pin is error!'

    1.  列表的基本操作

列表与元组的区别:列表可以修改,元组不可以修改。

列表的元素写在方括号中,元素间用逗号隔开,如:edward = [‘Edward’,29,’hangzhou’]

  1. 元素赋值:如x[1]=0
  2. 删除元素:

names = [‘Alice’, ‘Beth’, ‘Earl’, ‘Dimdo’]

del names[2]

结果names  =  [‘Alice’, ‘Beth’, ‘Dimdo’]

  1. 分片赋值:

可以一次为多个元素赋值:

name = list(‘perl’)

name[1:] = list(‘ython’)

结果name = [‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’]

可以实现插入元素:

num = [1, 5]

num [1:1] = [2, 3, 4]

结果num = [1, 2, 3, 4, 5]

可以实现删除元素:

num = [1, 2, 3, 4, 5]

num[2:4] = []

结果num = [1, 2, 5]

    1.  列表的方法
  1. append增

num = [1,2,3]

num.append(4)

结果 num = [1,2,3,4]

  1. count计数

x = [‘to’, ‘be’, ‘or’, ‘not’, ‘to’, ‘be’]

x.count(‘to’)

结果为2

  1. extend延伸

a = [1, 2, 3]

b = [4, 5, 6]

a.extend(b)

结果a = [1, 2, 3, 4, 5, 6]

  1. index索引

a=['who', 'am', 'i', '?']

a.index('?')

结果为3

  1. insert代替

num = [1, 2, 3, 4, 5]

num.insert(3, ‘four’)

结果num = [1, 2, 3, ‘four’, 4, 5]

  1. pop:移除列表中的一个元素,并且返回该元素的值,如:

x = [1, 2, 3]

x.pop()   返回3

x.pop(1)  返回2

  1. remove:移除表中某个值

x = [‘to’, ‘be’, ‘or’, ‘not’, ‘to’, ‘be’]

x.remove(‘be’)

结果 x = [‘to’, ‘or’, ‘not’, ‘to’, ‘be’]

  1. reverse:将列表中的元素反向存放

x = [1, 2, 3]

x.reverse()

结果 x = [3, 2, 1]

  1. sort:对原列表进行排序,返回值为空

x = [5, 1, 2, 4, 3, 6]

y=x.sort()

结果 x = [1, 2, 3, 4, 5, 6]

y无值

sorted()函数:

x = [5, 1, 2, 4, 3, 6]

y=sorted(x)

结果 x = [5, 1, 2, 4, 3, 6]

y = [1, 2, 3, 4, 5, 6]

  1. 比较函数cmp():

cmp(1,2)  返回-1

cmp(1,1)  返回0

cmp(2,1)  返回1

元组是不可变序列。

空元组:()

一个值的元组:1,  或 (1,)   其中逗号不可省略

多个值的元组:1, 2, 3  或(1, 2, 3)

2*(2+3)  输出10      #没有逗号,普通的值计算

2*(2+3,)  输出(5, 5)    #有逗号,表示是一个元组,相乘后得到一个新的元组,有两个值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值