Python基础及应用

1、 Python初次安装及使用

(1)python 的下载:

点击进入python官方网页地址:https://www.python.org/, 进入网页后选择Download,然后根据自己的操作系统选择正确的版本下载。如下图所示:(建议安装Python3.x版本)

python 基本操作 python的操作步骤_python 基本操作

(2) Python的安装

点击执行Python3.x版本的.exe文件进行python的安装,需要注意的是安装过程中遇到复选框问是否添加Python的环境变量,则需要将复选框勾选。

python 基本操作 python的操作步骤_字符串_02

(3)python的初次使用

方法一: windows命令行终端运行Python

具体方法如下图:

python 基本操作 python的操作步骤_基础知识_03


python 基本操作 python的操作步骤_字符串_04


方法二: IDLE 运行Python

python 基本操作 python的操作步骤_python 基本操作_05


python 基本操作 python的操作步骤_基础知识_06


方法三:Python脚本运行,Python脚本运行我们需要Python脚本编写工具,这次演示我们选择Windows系统下的记事本编写Python脚本即可,例如:

python 基本操作 python的操作步骤_Python_07


python 基本操作 python的操作步骤_Python_08

Python的变量

Python中的变量在声明的时候并不规定变量的类型,而是在赋值使用的时候规定变量的类型。一个python对象在赋值给变量后,相当于变量引用了该python对象,对象内部引用计数器会产生计数,如果同样的变量又引用了其他对象的值,该python对象内的引用计数器会被置零,该对象也会被自动释放。

python变量的类型

python变量的类型有数值型(整型int、浮点型float)、字符串(str)、列表(list)、字典型(dict)、元组型(tuple)、文件型(file)、集合(set)、布尔型(Boolean)、空(none)、程序单元(function,模块,类class)等等。下面将着重介绍数值型、字符串型、列表型 、元组型变量
1、数值型
数值型的声明和使用非常简单例如:
a = 5;
b = 4;
c = a+b
print©
结果等于 9
在用数值型变量的时候,经常用到math模块,在math模块中定义了多种数值型变量和方法,在用math模块时需通过import函数导入math模块。例如:
import math
math.pi 3.1415926
math.sqrt() 开平方
math.floor() 向左取整
math.trune() 向0 取整
round() 四舍五入 (round不是来源于math模块,而是python自带)
hex() 将十进制转换为十六进制
oct()将十进制转换为八进制
bin()将十进制转换为二进制(进制转换函数同round函数一样,同样是python自带)

2、字符串型 str 字符串类型不支持原位改变

字符串型变量在赋值时需将python对象用英文双引号或者英文单引号包括起来。
例如:name= “tom”
字符串变量同样可以用索引去访问字符串的某一位值,例如:
name[ 0 ]
输出结果为 t

>>> path = 'abc,adeaf,def'
>>> sa = path[:]  #全部
>>> la = path[-1] #最后一个
>>> mid = path[1:5]  #左边第二个到第五个。左闭右开区间
>>> two = path[::2]  # 步长为2 ,取全部元素
>>> fan = path[::-1]  #将字符串反转
>>> sa
'abc,adeaf,def'
>>> la
'f'
>>> 
>>> mid
'bc,a'
>>> two
'acaefdf'
>>> fan
'fed,faeda,cba'
>>>

同时python自带的函数len()可以计算字符串的长度,例如:
len(name)
输出结果为 3
python中字符串变量支持加法操作,例如:
a = “abc”
b = “def”
a+b
其输出结果为:“abcdef”
python中字符串变量同其他编程语言不同,python中字符串变量支持乘法操作,例如:
name*3
输出结果为:
namenamename
字符串类型不支持原位改变

字符串实例的函数
**split()**函数用于将字符串切割,例如:
url = “abc,def,xyz”
url.split(’,’)
其输出结果为:
[‘abc’,‘def’,‘xyz’] (结果类型为列表类型list)

**startwith(),endwith()**函数用于判断字符串是否以某个值开始或结束,返回bool类型的值,
例如:url.startwith(a) 返回值为 true

**jion()**函数用于在字符串中插入符号,例如:
a = ‘abc’
a.jion(’|’)
输出结果为:

转义符
\ --------------
’ ----------------’
\n-------------换行
转义符的应用:
path = “c:\abc\def” = path = r"c:\abc\def"

占位符的使用
数值型:
‘{0}’.format(20) 输出结果为 20
‘3+2 = {0}’.format(5) 输出结果为 ‘3+2 = 5’
‘f = {0:.2f}’.format( 3.3333333333333) 输出结果为 ‘f = 3.33’ (:.2f表示取小数点后两位,以浮点数显示)
字符串型:
‘姓名:{0},年龄:{1}’.format(‘tom’,‘20’)
输出结果为:‘姓名 :tom,年龄:20’

3 列表 list
1、列表的声明:

>>>  #列表的声明
... list = [1,2,'hello',[1,2,3]]  # 列表变量声明时需要将数值保存在英文中括号内[],列表内的对象类型可以是不同的
>>> list
[1, 2, 'hello', [1, 2, 3]]
>>>

列表不同与字符串,列表支持原位改变,而字符串不行

>>> lis = ['a','b','c']
>>> lis[0] = 'd'
>>> lis
['d', 'b', 'c']
>>>

2、 列表的常用函数

列表的加法

>>> #列表串的加法
... [1,2,3]+[4,2,6]
[1, 2, 3, 4, 2, 6]
>>>

列表的乘法

>>> lis = ['hello','Python','world']
>>> lis*4
['hello', 'Python', 'world', 'hello', 'Python', 'world', 'hello', 'Python', 'world', 'hello', 'Python', 'world']
>>>

len()函数

>>> #len()函数可以用于计算列表的长度
... len(list)
4

split()函数

classs = 'math,english,chinese,sport'
>>> lis = classs.split(',')  #split()将字符串以逗号分割,输出结果为列表
>>> lis
['math', 'english', 'chinese', 'sport']

join()函数

>>> lis = ['a','b','v']
>>>> sa = '|'.join(lis)  #join()函数是将指定字符插入到列表中,并输出为字符串
>>> sa 
'a|b|v'
>>>
>>> l
['a', '|', 'b', '|', 'v']
>>> 'a' in l  # in用于判断列表中是否存在某个字符
True
>>>

列表常用函数

>>> lis
['d', 'b', 'c']
>>> lis.append('a')  #往列表中添加一个元素
>>> lis
['d', 'b', 'c', 'a']
>>> lis.extend(lis)  #往列表中添加一个列表
>>> lis
['d', 'b', 'c', 'a', 'd', 'b', 'c', 'a']
>>> lis.count("a")   #统计元素a的个数
2
>>> lis.pop()    # 将列表中最后一个元素弹出
'a'
>>> lis
['d', 'b', 'c', 'a', 'd', 'b', 'c']
>>> del(lis[1])     # 删除列表中的一个元素
>>> lis
['d', 'c', 'a', 'd', 'b', 'c']
>>> lis.index('d')   #例表中某个元素的索引值
0
>>> lis.sort()    # 列表正向排序
>>> lis
['a', 'b', 'c', 'c', 'd', 'd']
>>> lis.reverse()   #列表反向排序
>>> lis
['d', 'd', 'c', 'c', 'b', 'a']
>>>

列表for循环
第一种情况:

>>> for c in lis:
...     print(c)    #print前面必须有四个空格的缩进
... 
hello
python
world
>>>

第二种情况:

>>> [c*3 for c in lis]
['ddd', 'ddd', 'ccc', 'ccc', 'bbb', 'aaa']
>>>

3、列表和字符串的转换
1、字符串转列表

>>> #列表和字符串的常用转换
... s = 'helloworld'
>>> li = list(s)
>>> li
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>>

4、字典类型
字典类型在声明时一般使用一对英文花括号{},而且内容是键值对形式存在。

>>> dic = {'name':'tom','slary':2000,'age':28,'job':'worker'}
>>>> dic
{'name': 'tom', 'slary': 2000, 'age': 28, 'job': 'worker'}

字典变量的声明除了直接声明以外还可以用dict构造函数声明。

>>> di = dict(name = 'tom',salary = '2000',age = 28,job = 'worker')  #dict为字典类的构造函数,注意要将键值对放在括号里
>>> di 
{'name': 'tom', 'salary': '2000', 'age': 28, 'job': 'worker'}

字典的索值一般有两种方法,一是直接通过键名索值,另一种是通过字典类所定义的get()方法去取值。如果所查询的键在字典中不存在,直接通过键名索值会报错,而get()方法不会报异常,并且能够规定返回值。

#字典类型的索值
>>> dic['name']
'tom'
>>> dic['slary']
2000

>>>dic.get('name')
'tom'
>>> dic = {'name' :'tom','salary':'2000','age':28,'job' :'worker'}
>>> dic.get('place','none')
'none'

字典的赋值

>>> dic['place'] = 'beijing'
>>> dic
{'name': 'tom', 'salary': '2000', 'age': 28, 'job': 'worker', 'place': 'beijing'}

同样字典支持原位改变

>>> dic['name'] = 'jerrey'
>>> dic
{'name': 'jerrey', 'salary': '2000', 'age': 28, 'job': 'worker', 'place': 'beijing'}

字典的合并 update()

dep = {'department ':'技术部'}
>>> dic.update(dep)
>>> dic
{'name': 'jerrey', 'salary': '2000', 'age': 28, 'job': 'worker', 'place': 'beijing', 'department ': '技术部'}

弹出

>>> dic.pop('age')
28
>>> dic
{'name': 'tom', 'salary': '2000', 'job': 'worker', 'place': 'beijing', 'department ': '技术部'}
>>>

字典的查值:查键值 keys()、查值值 value()、查键值值 items() 其返回值不同于列表和元组

>>> dic
{'name': 'tom', 'salary': '2000', 'job': 'worker', 'place': 'beijing', 'department ': '技术部'}
dic.keys()
dict_keys(['name', 'salary', 'job', 'place', 'department '])
>>> dic.values()
dict_values(['tom', '2000', 'worker', 'beijing', '技术部'])
>>> dic.items()
dict_items([('name', 'tom'), ('salary', '2000'), ('job', 'worker'), ('place', 'beijing'), ('department ', '技术部')])


#也可以将值打印出来
>>> for k in dic.keys():
...     print(k )
... 
name
salary
job
place
department 

>>> for k,v in dic.items():
...     print('{}=>{}'.format(k,v))  # 占位符
... 
name=>tom
salary=>2000
job=>worker
place=>beijing
department =>技术部

字典的嵌套

>>> dic = {'name':{'firstname':'tom','lastname':'lee'},'age':20 ,'salary':2000}
>>> dic['name']['firstname']
'tom'

5、元组 tuple
元组 不支持原位改变,是任意对象的有序集合、通过下标访问,长度固定。
1、声明 元组声明的时候可以将对象放在英文括号内,英文括号也可以省略。

>>> t = (1,2)
>>> t 
(1, 2)
>>> t = 1,2 
>>> t 
(1, 2)

2、元组通过索引的方式改变其值的

>>> t[0]= 99  #对上面声明的元组改变其值,结果会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>

3、元组的加法

>>> (1,2)+(3,4)
(1, 2, 3, 4)

4、元组常用的方法

>>> t = (1,2,3,4)
>>> t.index(2 )   #查元组内某一个对象的下标值
1
>>> t.count(3)  #统计元组内某个对象的个数
1
>>>

5、元组的推导

#1、
>>> for i in t :
...     print(i**2 )
... 
1
4
9
16

#2
>>> lis = []
>>> for i in t:
...     lis.append(i )
... 
>>> lis
[1, 2, 3, 4]
>>> 


#3 
>>> lis = [i**2 for i in t ]
>>> lis
[1, 4, 9, 16]

5、namedtuple 的用法

>>> from collections import namedtuple
>>> employee = namedtuple('employee',['name','age','dep','salary'])
>>> jerry = employee('jerry',28,'财务部','5000')
>>> jerry.salary
'5000'
>>> jerry.age
28
>>> jerry.dep
'财务部'
>>>

6、文件
在python中打开文件需要用到open()函数。
文件的写操作:

>>> file = open('d:\helloworld.txt','w')  #open函数有两个参数 ,第一个参数是文件的路径和文件的名称,第二个是操作模式,操作模式一般有r(读操作),w(写操作),a(追加操作),rb(读二进制文件),wb(写二进制文件)
file.write('你好世界\n ')
6   #受影响的字符
>>> file.write('helloworld\n ')
12
>>> file.close()   #用完记得关

python 基本操作 python的操作步骤_python 基本操作_09


文件的读操作

>>> f = open('d:\helloworld.txt','r' ,endcoding = 'utf8')    #读文件时,read()是读文件内所有的内容   字符串类型,readlines()读文件内所有的行,返回值是列表类型,readline()一行一行的读文件内的内容,类似与指针。endcoding 是指编码格式。
>>> f.readline()
'你好世界\n'
>>> f.readline()
' helloworld\n'
>>> f.readline()
' '
>>> fil = open('d:\helloworld.txt','r')
>>> fil.readlines()
['你好世界\n', ' helloworld\n', ' ']
>>> 
>>> f = open('d:\helloworld.txt','r' )
>>> f.read()
'你好世界\n helloworld\n '
>>>

特殊变量的文件读写操作

import  pickle

d = [1,2,3]
#写操作
f = open('hello.txt','wb')   #‘wb’表是以二进制的形式写文件
pickle.dump(d,f)   #pickle.dump()函数用于文件的写操作,变量1,为需要写入的内容,变量2  为打开的文件
f.close()



#读操作
f = open('hello.txt','rb')   #'rb'表示以二进制的形式读文件内的内容
data = pickle.load(f)   #pickle.load()函数用于二进制文件的读操作,变量为需要读取的文件句柄
print(data)
[1, 2, 3]
f.close()

每次对文件进行写读操作以后,需对文件链接对象进行关闭操作,为了防止忘记关掉文件链接对象,可以采用Python规定的上下文管理器

# 写操作
with open('nihao.txt','w') as fw:
    fw.write('hello world\n')
    fw.write('goodbye,world')
# 读操作
with open('nihao.txt','r') as f :
    for line in  f.readlines():
        print(line)