python 基础篇(一)


默认的python的文件为:文件名.py

#!/usr/bin/env python   
# coding=utf-8     对中文的支持(切记:等号两边没有空格)
执行python 文件:
[[email protected] Desktop]# python test1.py

[[email protected] Desktop]# chmod +x test1.py
[[email protected] Desktop]# ./ test1.py

变量: 指向内存的一个符号
不同文件系统也是属于不同的类型   它作用于磁盘
python:强类型的动态语言  “变量可以替换,包括变量的类型”

数据类型分为两大类: 数字类型和字符串类型
>>> a = 1
>>> type(a)
<type ‘int‘>
>>> a= ‘str‘
>>> type(a)
<type ‘str‘>
不同的数据类型时不能做变换的
>>> a=‘hello‘
>>> b= ‘world‘
>>> a+b
‘helloworld‘
同其他语言一样 在python中: 从高精度向低精度转换时会存在数据损失,在低精度向高精度转换时不会存在

程序=数据结构+算法
优先级: 单目>双目  (单目:! 双目运算符:+ - * / ;在python里面没有三目运算符)
算术运算符 > 位操作运算符>比较运算符>逻辑运算符  
算术运算符: + - * / %
位操作运算符: << >> & ^ | ~
比较运算符: < <= > >= !=
逻辑运算符:and or not 赋值=

() 优先级最大  赋值= 优先级最小

表达式:
除法运算:
>>> 10/3
3
>>> 10/3.0
3.3333333333333335
>>> 10.0/3
3.3333333333333335
幂运算:
>>> 2**4
16
除法取整运算:
>>> 10//3.0
3.0
>>> 10.0//3
3.0
>>> 10//3
3

取模运算:
>>> 10%3
1
>>> 10%3.0
1.0

按位与   &   全为真则为真
或      |   有一个为真则为真
异或     ^   有两个不同时则为真,相同时则为假

>>> 2<<3  00010 左移3位 10 000=2**4
16
>>> 2>>3  00010 右移三位出界则为零
0
>>> 3&2   按位与:11&10 => 10
2
>>> 3^2      异或: 11^10 => 01
1
>>> 3|2   按位或:11|10 => 11
3

程序结构:
if 语句   只能进入一个分支执行且执行完跳出     在if语句中只有一个 else  可有多个 elif
分支语句只有一个if
循环语句:while   for     break continue   且循环里面可以有else
while condition:
    expression
for item in  迭代器(列表,元组等)
    expression
break     退出整个循环体
continue  退出当前循环

python的内置容器有: 列表,元组,字典,集和,

>>> a= [1,4,5,‘lo‘]    ##定义一个列表   列表中的元素没有要求 且列表可以嵌套
>>> type(a)           ##type() 查看类型
<type ‘list‘>

range() 得到一个列表
>>> range(0,2)
[0, 1]
>>> dir(a)    ##可以查看对于一个容器能够执行的操作  
[‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__delslice__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__getslice__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, ‘__imul__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__setslice__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘append‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘]

>>> help (a.count)   ##查看帮助
>>> a.append(3)    
>>> a
[1, 3, [1, 2, 3], 3]
>>> a.count(3)    ##统计某个数在列表中出现的次数
2
>>> a.extend(b)   ##将两个容器追加到一个当中
>>> a
[1, 3, [1, 2, 3], 45, 3, ‘hello‘, ‘world‘, 23]

>>> b.insert(2,45)   在所个下标前插入所给的数
>>> b
[‘hello‘, ‘world‘, 45, 23]

>>> b.index(23)     返回该数的下标
3

>>> b.remove(45)   删除一个数
>>> b
[666, ‘hello‘, ‘world‘, 23]

>>> b=[1,23,24,13,24,44,]   ##pop 删除一个下标为几的数 并将该数返回
>>> b.pop()   
44
>>> b
[1, 23, 24, 13, 24]
>>> b.pop(2)
24
>>> b
[1, 23, 13, 24]

>>> b.reverse()  将列表中的数逆序显示出
>>> b
[24, 13, 23, 1]

>>> b.sort()    将列表中的数按照大小排列出来
>>> b
[1, 13, 23, 24]
>>> 23 in a     ##判断某一个元素在列表中
True

>>> a
[1, 3, ‘lo‘, [1, 2, 3]]
>>> len(a)   ##得到列表长度
4
>>> del a[2]  ##del 删除列表中下表为几的元素
>>> a
[1, 3, [1, 2, 3]]

列表切片:  ##列表切片不会改变列表的本身,
li[a:b:c]  从下标a开始,到下标b结束,但不会包含b,c表示为布长
>>> a
[1, 3, [1, 2, 3], 45, 3, ‘hello‘, ‘world‘, 23]

>>> a[1:7]
[3, [1, 2, 3], 45, 3, ‘hello‘, ‘world‘]

>>> a[:6]
[1, 3, [1, 2, 3], 45, 3, ‘hello‘]
              
>>> a[:: -1]     ##实现逆序显示一个列表:
[23, ‘world‘, ‘hello‘, 3, 45, [1, 2, 3], 3, 1]

###
>>> a
[1, 3, [1, 2, 3], 45, 3, ‘hello‘, ‘world‘, 23]
>>> a1=a[:]
>>> a[2][1]=100
>>> a
[1, 3, [1, 100, 3], 45, 3, ‘hello‘, ‘world‘, 23]
>>> a1
[1, 3, [1, 100, 3], 45, 3, ‘hello‘, ‘world‘, 23]
#######注意: 列表赋值相当于引用 它与切片赋值不一样
>>> l2
[4, 5, 6]
>>> l5=l2
>>> id(l2)
11948832
>>> id(l5)
11948832
>>> l6=l2[:]
>>> id(l6)
11948976

元组: 元组是不可改变的对象,不能对元组的内容作修改。
>>> c=(1,23,45)
>>> type(c)
<type ‘tuple‘>

根据元组的不可改变的性质,元组只能执行:count,index 的操作,且元组支持下标和切片。
>>> c
([1.23, 34, ‘hello‘], [34, 54])
>>> c[0][2]=230
>>> c
([1.23, 34, 230], [34, 54])
表明了元组的不可改变是相对的。

集和:
>>> c
set([32, 1, 2, ‘kitty‘, 21])      ##定义一个集和   
>>> type(c)
<type ‘set‘>

>> a = set()    ##定义一个空集和
>>> type(a)
<type ‘set‘>

>>> c={}      ##定义出来的为字典
>>> type(c)
<type ‘dict‘>

集和保持着数学中的集和性质: 无序性, 唯一性,
>>> d={1,3,1,2,‘kitty‘,23,1,‘hello‘}
>>> d
set([1, 2, 3, ‘kitty‘, 23, ‘hello‘])
集和不支持切片
>>> c.add(100)     ##集和元素的添加
>>> c
set([32, 1, 2, 100, ‘kitty‘, 21])
>>> c.update([12,‘world‘,78])    ##增加一个集和
>>> c
set([32, 1, 2, 100, 12, ‘kitty‘, 78, 21, ‘world‘])

>> c.remove(12)     ##删除集和中一个元素   但该元素在集和中不存在时报错
>>> c
set([32, 1, 2, 100, ‘kitty‘, 78, 21, ‘world‘])
>>> c.remove(43)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 43

>>> c.discard(43)    ##删除一个元素,没有该元素时不执行任何操作。
>>> c
set([32, 1, 2, 100, ‘kitty‘, 78, 21, ‘world‘])

>>> c.pop()      ##随机的删除集和中的某个元素。
2
>>> c         ##清除某个集和
set([100, ‘kitty‘, 78, 21, ‘world‘])
>>> c.clear()
>>> c
set([])
集和的运算:
差集:difference   ##求出差集    a-b
     difference_update    ##求出差集,但修改了原来的集和,不返回值
>>> c
set([‘world‘, 2, 1, 45, 23])
>>> d
set([1, 2, 3, ‘kitty‘, 23, ‘hello‘])
>>> c.difference(d)
set([‘world‘, 45])
>>> c.difference_update(d)
>>> c
set([‘world‘, 45])

交集:intersection
     intersection_update    
    &
>>> c.intersection(d)
set([1, 2, 23])
>>> c.intersection_update(d)
>>> c
set([1, 2, 23])
>>> c&d
set([1, 2, 23])

并集:union |
>>> c.union(d)
set([1, 2, 3, ‘kitty‘, 45, 23, ‘world‘, ‘hello‘])
>>> c|d
set([1, 2, 3, ‘kitty‘, 45, 23, ‘world‘, ‘hello‘])

判断是否有交集:isdisjoint 查看两个集和是否有交集,返回的为布尔值
>>> c
set([‘world‘, 2, 1, 45, 23])
>>> d
set([1, 2, 3, ‘kitty‘, 23, ‘hello‘])
>>> c.isdisjoint(d)
False
>>> e={‘lll‘,666}
>>> c.isdisjoint(e)
True

容器之间的转换:
元组与列表:
>>> t=(1,2,3)
>>> type(t)
<type ‘tuple‘>
>>> list(t)
[1, 2, 3]
>>> t1.append(24)
>>> t1
[1, 2, 3, ‘hello‘, 24]
>>> t
(1, 2, 3, ‘hello‘)

>>> t=tuple(t1)
>>> t1
[1, 2, 3, ‘hello‘, 24]

列表与集和的转换
>>> l=[1,22,23,‘hello‘]
>>> a=set(l)
>>> a
set([1, ‘hello‘, 22, 23])
>>> a.add(45)
>>> a
set([1, 45, ‘hello‘, 22, 23])
>>> l
[1, 22, 23, ‘hello‘]
>>> l=list(a)
>>> l
[1, 45, ‘hello‘, 22, 23]
>>> p=set(t)
>>> p
set([24, 1, 2, 3, ‘hello‘])

set,list,tuple,三个函数可以转换,但是由于集和的性质,在list或tuple转换成set时,有重复的元素,则进行删除。

字典:
d=dict();  d=("key":"value")
d 中key值是可hash 的。key是唯一的
>>> d
{‘age‘: 100, ‘name‘: ‘tom‘}

>>> d.keys()
[‘age‘, ‘name‘]

>>> d.values()
[100, ‘tom‘]

>>> it= d.iterkeys()   iterkeys 将字典的所有key作为一个迭代器返回
>>> it.next()
‘age‘
>>> it.next()
‘name‘

>>> it2=d.items()    items返回一个列表, 并用元组的形式成对输出
>>> it2
[(‘age‘, ‘23‘), (‘name‘, ‘tom‘)]

>>> for i in d.keys():
...     print i,d[i]
...
age 23
name tom

>> for k,v in d.items():
...     print k, v
...
age 23
name tom
>>> d[‘sex‘]=2   ###给字典增加一个值
>>> d
{‘age‘: ‘23‘, ‘name‘: ‘tom‘, ‘sex‘: 2}

#############注意:引用传值与复制的区别:
>>> d
{‘age‘: ‘23‘, ‘name‘: ‘tom‘, ‘sex‘: 2}
>>> d1=d
>>> d1[‘age‘]=66
>>> d1
{‘age‘: 66, ‘name‘: ‘tom‘, ‘sex‘: 2}
>>> d
{‘age‘: 66, ‘name‘: ‘tom‘, ‘sex‘: 2}
>>> d2=d.copy()
>>> d2
{‘age‘: 66, ‘name‘: ‘tom‘, ‘sex‘: 2}
>>> d2[‘age‘]=99
>>> d2
{‘age‘: 99, ‘name‘: ‘tom‘, ‘sex‘: 2}
>>> d
{‘age‘: 66, ‘name‘: ‘tom‘, ‘sex‘: 2}
>>> id(d)
9777488
>>> id(d1)
9777488
>>> id(d2)
10605344

列表解析:
>>> li=[1, 2, 3, 4, 5]
>>> li1=[ i+1 for i in li]
>>> print li1
[2, 3, 4, 5, 6]

>>> l1=[1,2,3]
>>> l2=[4,5,6]
>>> l3=(i+1 for i in l1)
>>> l3
<generator object <genexpr> at 0x9b60f0>     ##返回的是一个迭代器
>>> l3.next()
2
>>> l3.next()
3
>>> l3.next()
4
迭代器(iterator):执行一次给一次结果《被动的》(他不相当于循环《主动的》) 它是一个惰性的

时间: 2024-12-04 13:16:53

python 基础篇(一)的相关文章

Python基础篇(八)

key words:私有变量,类静态变量,生成器,导入Python模块,r查看模块可以使用的函数,查看帮助信息,启动外部程序,集合,堆,时间模块,random模块,shelve模块,文件读取等 >>> class Rectangle: ...     def __init__(self): ...         self.__width = 0 ...         self.__height = 0 ...     def setSize(self,width,height): .

老王python基础篇--python, 视频, 教程, 视频教程, 基础

老王python基础篇 基础篇11-python基本数据结构-元组和集合.rar 基础篇19-python语句与数据结构应用.rar 基础篇21-文本操作应用.rar 基础篇3-虚拟机安装xubuntu开发环境.rar 基础篇17-python语句1.2.rar 基础篇10-python基本数据结构-列表应用.rar 基础篇9-python基本数据结构-列表.rar 基础篇5-python基本数据类型讲解1.1.rar 基础篇18-基础篇综合习题.rar 基础篇8-python基本数据类型习题解

python基础篇

python基础篇 变量命名 >>> name_value='freddy' 1 >>> name_value=freddy 2 Traceback (most recent call last): 3 File "<stdin>", line 1, in <module> 4 NameError: name 'freddy' is not defined **变量的值如果是字符串必须要加引号,否则定义变量会报错 (因为他把变

Python基础篇(三)

元组是序列的一种,与列表的区别是,元组是不能修改的. 元组一般是用圆括号括起来进行定义,如下: >>> (1,2,3)[1:2]     (2,) 如果元组中只有一个元素,元组的表示有些奇怪,末尾需要加上一个逗号: >>> (1,2,3)[1:2]     (2,) >>> 3*(3)      9      >>> 3*(3,)      (3, 3, 3) tuple函数 tuple函数用于将任意类型的序列转换为元组: >&

Python基础篇(七)

加上两个下划线变量或者方法变为私有. >>> class Bird: ...    __song = "spark" ...    def sing(self): ...       return self.__song ... >>> b = Bird() >>> b.sing() 'spark' >>> b.__sing() Traceback (most recent call last): File &qu

Python基础篇(六)

retun空值,后面的语句将不再被执行 >>> def test(): ...    print("just a test!") ...    return ...    print("will not be print") ... >>> test() just a test! 和Java类似,在传递参数时,当参数是字符串,元组时,传递的其实是拷贝,修改实际参数不会影响到形式参数.当参数是对象时,修改实际参数将会影响到形式参数.

Python基础篇(一)

首先需要从Python的官网下载python的安装程序,下载地址为:www.python.org/downloads.最新的版本为3.4.1,下载和操作系统匹配的安装程序并安装即可. 安装好了后,在开始里面应该可以找到Python的相关启动项,如上图所示. Python基础篇(一)

Python基础篇(五)

bool用于判断布尔值的结果是True还是False >>> bool("a") True >>> bool(3) True >>> bool("") False >>> bool(0) False Python中的elif类似于Java中的elseif >>> number = (int)(input("input a number: ")) input

工程脚本插件方案 - c集成Python基础篇

工程脚本插件方案 - c集成Python基础篇 序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中根据需求会拆分的更细. 外部的表现形式就是一个核心动态库,带着一堆业务业务动态库.通过一个调度程序把这些链接起来,外加一堆配置文件,就形成一个完成的项目. 这种模式在一个团队开发中,工作职责比较容易划分.制定API接口后,开发工作基本可以并行实现,包括

python基础篇(二)

python基础篇(二) if:else,缩进和循环控制 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函数基础 A:函数的定义和返回值 B:返回值的三种情况 C:函数的注释 函数的进阶(命名空间和作用域) A:内置命名空间 B:全局命名空间 C:局部命名空间 D:全局作用域 E:局部作用域 F:函数的嵌套和作用域链. G:函数名的本质 闭包 ?一:if:else和缩进 A:if的基础格式和缩