如何理解python语言_如何快速学习技能之Python篇02-如何理解Python语言

一、为什么要学习Python?如何学习Python?

这两个问题是编码初学者绕不开的话题,回答第一个问题你可以先问问自己:我为何要学习编程?大多数非计算机相关专业的初学者往往是为了转换就业方向而学习计算机语言,既然是为就业而学习编程语言,那为什么不选当下最热门且最具发展潜力的Python呢?目前市面上众多应用是基于Python开发的,而且越来越多的人工智能项目使用Python作为研发工具,学习Python才能跟上时代的步伐。

在弄明白了自己的学习方向后,我们又迎来第二个难题如何学习Python。随着现代社会的快速发展,工作者无法完全分开生活和工作的界限,这也意味着你很难划出固定的时间来学习新的知识。因此,为了适应现在快节奏的生活,我们也应该学会如何利用琐碎的时间来学习新的知识。为了更好的利用碎片化的时间,我们应该讲所学的知识也碎片化,这样我们就能把碎片化的时间和碎片化的知识一一对应。

二、如何使用Python?

Python最原始的操作环境存在许多不足,例如无法进行注解或越过当前命令等。为了解决Python原始环境的不足,我们可以通过Anaconda平台来运行Python。通过Anaconda平台来操作Python编码,不仅仅实现了编码注解和跳跃式运行指令,而且在处理Python的外置包上也十分简便。作为一名Python初学者,Anaconda帮助我更快的适应了Python这项新的编程语言。

三、Python的四大核心

Python语言主要由四大核心内容组成,分别是数据,条件判断,循环,函数。

1.数据

1.1Python中数据类型也分为字符串型,数值型,布尔型和空型。

数据变量可以用数据名加数据类型命名方便使用,另外数字不能置于变量名的开头处。

字符串型:字符串不能修改对象

#字符串数据(string)

travel_method1_str='car'

travel_method1_str

#结果

'car'

#字符串数据(string)

travel_method2_str='airplane'

travel_method2_str

#结果

'airplane'

#格式化字符串

travel_method_total_str='出行方式有%s,%s.'%(travel_method1,travel_method2)

travel_method_total_str

#结果

'出行方式有car,airplane.'

数值型:数值型数据不能修改对象

#数值型数据(int)

number_fill_int=25

number_fill_int

#结果

25

#数值型数据(floating)

number_fill2_float=2.5

number_fill2_float

#结果

2.5

布尔型&空型:可以修改对象

#布尔型数据(bool)

bool_data=True

type(a)

#结果

bool

#空型数据(None)

None_data=None

type(None_data)

#结果

NoneType

1.2Python中的数据容器

Python中的数据可以单独的赋予给新变量,也可以和其他数据一起形成列表,集合,字典等再赋予给新变量

列表:

#数据容器-List列表

transportation=['vehicle','flight','ferry']

transportation

#结果

['vehicle', 'flight', 'ferry']

#查询列表长度

len(transportation)

#结果

3

#添加新的数据进列表

transportation.append('spaceship')

transportation

#结果

['vehicle', 'flight', 'ferry', 'spaceship']

#根据索引修改列表中数据

print(transportation)

transportation[0]='tank'

transportation

#结果

['flight', 'ferry', 'spaceship']

['tank', 'ferry', 'spaceship']

集合:集合中不能出现重复的数据,出现重复数据会自动被删除

#数据容器-Set集合;集合中不能出现重复的数据

transportation2={'vehicle','flight','ferry','ferry'}

transportation2

#结果

{'ferry', 'flight', 'vehicle'}

#创建空集合并添加数据

transportation3=set()

transportation3.update(['vehicle','flight','ferry','ferry'])

transportation3

#结果

{'ferry', 'flight', 'vehicle'}

#从集合中删除数据

transportation3.discard('ferry')

transportation3

#结果

{'flight', 'vehicle'}

#从集合中查询数据

'ferry'in transportation3

#结果

False

字典:字典有映射关系,一个Key对应一个Value

#数据容器-Dictionary字典;字典存在映射关系,即前面的Key对应后面的数据

transportation_method={'method1':['vehicle','ten hours'],

'method2':['flight','two hours'],

'method3':['ferry','one day']}

transportation_method

#结果

{'method1': ['vehicle', 'ten hours'],

'method2': ['flight', 'two hours'],

'method3': ['ferry', 'one day']}

#字典加入新数据

transportation_method['method4']=['spaceship','one second']

transportation_method

#结果

{'method1': ['vehicle', 'ten hours'],

'method2': ['flight', 'two hours'],

'method3': ['ferry', 'one day'],

'method4': ['spaceship', 'one second']}

#字典删除指定数据

del transportation_method['method1']

transportation_method

#结果

{'method2': ['flight', 'two hours'],

'method3': ['ferry', 'one day'],

'method4': ['spaceship', 'one second']}

#字典查询数据

transportation_method['method2']

#结果

['flight', 'two hours']

#字典修改数据

transportation_method['method2']=['tank','life time']

transportation_method

#结果

{'method2': ['tank', 'life time'],

'method3': ['ferry', 'one day'],

'method4': ['spaceship', 'one second']}

元组:不能修改对象

#数据容器-tuple元组

transportation_way=('vehicle','flight','ferry')

transportation_way

#结果

('vehicle', 'flight', 'ferry')

2.条件判断

利用条件判断语句能够帮助我们筛选数据并分组,对满足条件的数据和不满足条件的数据分别进行处理。

单一条件判断:

#利用单条件语句进行检测

License_Data={'12563':'Six Months','65875':'Two Years',

'98568':'Three Months','12345':'Two Weeks','85987':'Ten Days'}

DriverLicenseDetect=str(input('请输入驾照的5位数编码'))

if DriverLicenseDetect in License_Data.keys():

print('驾照有效期还剩',License_Data[DriverLicenseDetect])

else:

print('无效驾照')

#结果

请输入驾照的5位数编码12345

驾照有效期还剩 Two Weeks

多条件判断:

#利用多条件语句进行检测

License_Data2={'12563':'Six Months','65875':'Two Years','98568':'Three Months','12345':'Two Weeks','85987':'Ten Days'}

DriverLicenseDetect_str2=str(input('请输入驾照的5位数编码'))

DriveVerify_str=str(input('驾驶员是否与照片一致,请输入小写yes或no:'))

DriveSafety_str=str(input('驾驶员是否系安全带,请输入小写yes或no:'))

VehicleSafety_str=str(input('汽车是否超载,请输入小写yes或no:'))

if DriverLicenseDetect_str2 in License_Data2.keys():

if DriveVerify_str==str('yes'):

if DriveSafety_str==str('yes'):

if VehicleSafety_str==str('yes'):

print('驾照有效期还剩',License_Data2[DriverLicenseDetect_str2])

else:

print('超载罚6分')

else:

print('未系安全带罚6分')

else:

print('使用他人驾照,拘留15天')

else:

print('无效驾照,拘留1月')

#结果

请输入驾照的5位数编码12345

驾驶员是否与照片一致,请输入小写yes或no:yes

驾驶员是否系安全带,请输入小写yes或no:yes

汽车是否超载,请输入小写yes或no:yes

驾照有效期还剩 Two Weeks

3.循环

利用循环可以遍历整个字典

#正常循环

License_Data3={'12563':'Six Months','65875':'Two Years',

'98568':'Three Months','12345':'Two Weeks','85987':'Ten Days'}

for key,value in License_Data3.items():

print('驾照编码:',key,'有效期:',value)

#结果

驾照编码: 12563 有效期: Six Months

驾照编码: 65875 有效期: Two Years

驾照编码: 98568 有效期: Three Months

驾照编码: 12345 有效期: Two Weeks

驾照编码: 85987 有效期: Ten Days

利用continue语句,我们可以跳过字典中的某些数据

#包含Continue的循环

License_Data4={'12563':'Six Months','65875':'Two Years','98568':'Three Months','12345':'Two Weeks','85987':'Ten Days'}

ContinueData_str=str(('12563','65875'))

for key,value in License_Data4.items():

if key in ContinueData_str:

continue

print('驾照编码:',key,'有效期:',value)

#结果

驾照编码: 98568 有效期: Three Months

驾照编码: 12345 有效期: Two Weeks

驾照编码: 85987 有效期: Ten Days

利用Break语句,我们可以让循环自动终止

#包含break的循环

License_Data5={'12563':'Six Months','65875':'Two Years','98568':'Three Months','12345':'Two Weeks','85987':'Ten Days'}

ContinueData_str=str(('12563','65875'))

for key,value in License_Data5.items():

if key not in ContinueData_str:

break

print('驾照编码:',key,'有效期:',value)

#结果

驾照编码: 12563 有效期: Six Months

驾照编码: 65875 有效期: Two Years

4.函数

构建函数前有几点需要注意,如果构建的函数和调用的命令在同一个notebook中,那么函数必须放在调用命令之前,不然会报错。函数中的变量和函数外的变量不会相互影响,因此不通过调用语句无法直接使用函数中的变量。当函数由不可变数据构成时(字符串,数字,元组)函数为不可变函数,反之,函数为可变函数。

不可变函数:

#不可变函数

def unchangeable(a):

a=a+1

b=1

unchangeable(b)

print(b)

#结果

1

可变函数:

#可变函数求众数

def CalcMode(alist):

EmptyMode=[]

if alist==[]:

return EmptyMode

else:

modelist=[]

modedict=dict((x,alist.count(x)) for x in alist)

for key,value in modedict.items():

if value==max(modedict.values()):

modelist.append(key)

return modelist

print(CalcMode([1, 2, 3, 2]))

#结果

[2]

四、Python模块的使用

Python的强大之处就能使用大量的第三方模块,第三方模块可以通过网上查找也可以通过anaconda直接安装。第三方模块是由其他人编写成的Python函数包,通过使用第三方模块可以大大节省我们的编码时间。

使用Python内置模块查询模块路径:

#使用模块查询路径

import sys

path=sys.path

path

#结果

['',

'D:\\Analytics\\python36.zip',

'D:\\Analytics\\DLLs',

'D:\\Analytics\\lib',

'D:\\Analytics',

'C:\\Users\\81256\\AppData\\Roaming\\Python\\Python36\\site-packages',

'D:\\Analytics\\lib\\site-packages',

'D:\\Analytics\\lib\\site-packages\\Babel-2.5.0-py3.6.egg',

'D:\\Analytics\\lib\\site-packages\\win32',

'D:\\Analytics\\lib\\site-packages\\win32\\lib',

'D:\\Analytics\\lib\\site-packages\\Pythonwin',

'D:\\Analytics\\lib\\site-packages\\IPython\\extensions',

'C:\\Users\\81256\\.ipython']

使用Pandas读取Excel的sheet:

因为excel里面的数据由行列构成,所以读取Excel数据会直接转换成Dataframe格式

#使用panda读Excel文件

import pandas as pd

file=r'C:\Users\81256\Desktop\Python练习\病历数据.xlsx'

read_file=pd.ExcelFile(file)

read_sheet1=read_file.parse('Sheet1')

read_sheet1

#结果

病人编号姓名年龄糖尿病类型病情

01猴子291型糖尿病较差

12马云342型糖尿病好转

23王健林281型糖尿病显著好转

34马化腾522型糖尿病较差

使用collections数据包

队列:

#导入collections包

from collections import deque

#定义队列:排队吃饭人的编号

queue=deque(['001','002','003','04','005'])

#入队:在队列尾部插入元素

queue.append('006')

print(queue)

#结果

deque(['001', '002', '003', '04', '005', '006'])

#出队:在队列头部删除元素

queue.popleft()

#结果

'001'

print(queue)

#结果

deque(['002', '003', '04', '005', '006'])

栈:

#定义栈:浏览我个人知乎主页的顺序

stack=deque(['知乎动态','知乎回答','知乎文章'])

print(stack)

#结果

deque(['知乎动态', '知乎回答', '知乎文章'])

#入栈:在栈顶加入元素

stack.append('知乎专栏')

print(stack)

#结果

deque(['知乎动态', '知乎回答', '知乎文章', '知乎专栏'])

#出栈:将栈顶元素移除

stack.pop()

#结果

'知乎专栏'

print(stack)

#结果

deque(['知乎动态', '知乎回答', '知乎文章'])

排序字典:

from collections import OrderedDict

#定义有序字典

gafataOdDict=OrderedDict({'谷歌':'GOOG','亚马逊':'AMZN','Facebook':'FB',

'苹果':'AAPL','阿里巴巴':'BABA','腾讯':'0700'})

gafataOdDict

#结果

OrderedDict([('谷歌', 'GOOG'),

('亚马逊', 'AMZN'),

('Facebook', 'FB'),

('苹果', 'AAPL'),

('阿里巴巴', 'BABA'),

('腾讯', '0700')])

计算器:

counter函数可以相同字符计数功能

from collections import Counter

cDict = Counter('有一种鸟是永远也关不住的,因为他们的羽毛太光亮了。羽毛太光亮')

cDict['亮']

#结果

2

#出现次数最多的3个词

cDict.most_common(3)

#结果

[('的', 2), ('羽', 2), ('毛', 2)]

总结:

Python的功能很强大,相关的知识虽已经学会,但是还需要我们进行更深层次的挖掘才行。现实当中的编码问题往往较为复杂,如果只是走马观花般学习最后还是无法解决现实中遇到的问题。要善于使用互联网查询问题,通过互联网可以获取大量的资料,如此简易的查询方法怎能不好好加以利用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值