零基础python入门体验课_五天零基础入门Python是种什么体验

五天零基础入门Python,回头一看觉得匪夷所思。

如果没有猴子老师的Python入门课程,这一切根本不可能。

短短的五天里学到了和时间了不少东西,真真切切地体会了一把快速学习的酣畅淋漓,这五天都做了些什么?

一、准备工作

安装了两个重要工具:

Anaconda - 包管理器和环境管理

Jupyter notebook - 将数据分析的代码、图像和文档组合到一个web文件中

我用的是Mac的操作系统,每次安装程序的时候都很容易有各种奇怪的事情,可是这一次非常顺利,唯一遇到的问题是下面这个:

在Anaconda终端安装代码自动补全包,使用命令

conda install pyreadline

出现下面报错:

如果是这种情况,改为使用pip命令

pip install pyreadline

安装成功了!有时候conda和pip换着用可以解决问题。

有了这两个软件,就可以立即开始愉快地使用Python啦!

二、Python入门实操a

实际动手操作了Python最关键的和弦:数据、条件判断、循环、函数。

猴子老师的知乎入门课程边听边做脑图以及在Jupyter notebook里实际操作。

1、数据

数据类型包括字符串、数值、容器、布尔、None,其中容器数据类型包括列表、元祖、集合、字典。不可变的数据类型为:字符串、数值以及元祖。

字符串string:

#casestudy1:define string

nameStr='Jark Ma'

moneyStr=' has Money'

#combine strings

print('use + to combine strings:',nameStr+moneyStr)

数值number:

#1 Integer: Jark Ma is 50

age=50

#2 Floating:I use Jark Ma's Yuebao to earn 3.53 RMB

money=3.53

布尔boole:

age=10

if age==10:

print('判断条件是True')

else:

print('判断条件是False')

None:

age=None

if age==None:

print('age is 空值')

else:

print('age is not 空值')

容器 - 列表list

#define life: patient name

nameList=['猴子','马云','王健林','马化腾']#list number start from 0,1,2

列表操作

#1)容器操作:增加

nameList.append('刘强东')

print('add a element: ',nameList)

#2) 容器操作:删除

del nameList[1]

print('delete No.2 element:',nameList)

#3) 容器操作:查询:使用下标索引来访问列表中的值,下标从0开始

name1=nameList[0]

print('查询列表的第1个元素:',name1)

#4) 容器操作:修改:直接指定下标的值

print('before amendment No.1 element is ',nameList[0])

nameList[0]='孙悟空'

print('after amendment No.1 element is ',nameList[0])

容器 - 集合sets

'''Sets is a container that holds unique elements'''

#define Sets: 6 company stocks

gafataSets={'Tencent','Alibaba','Apple','Google','Facebook','Amazon','Amazon'}

print(gafataSets)

集合操作

#1)container:add

#zizi practice

stockSets1={'Tencent','Alibaba','Apple','Google','Facebook','Amazon'}

stockSets1.update(['JD'])#remember to use (['']) not ('')

print(stockSets1)

#2) container:delete

stockSets.discard('JD')

print(stockSets)

#3) container:search

txBool='Tencent' in stockSets

print(txBool)

#4) container:amend

#1 step1:delete

stockSets.discard('JD')

#2 step2:add

stockSets.update(['JDD'])

print(stockSets)

字典dictionary

#define dictionary:excel patient data entrance

patientDic1={'001':['Houzi',29,'1Diabetes','poor'],

'002':['JackMa',34,'2Diabetes','improving'],

'003':['Wang Jianlin',28,'1Diabetes','improve a lot'],

'004':['Ma Huateng',52,'2Diabetes','improving']}

字典操作

#1) container:add

patientDic1['005']=['Wang sicong',30,'2Diabetes','improving']

print(patientDic1)

#2) container:delete

del patientDic1['005']

#3) container: search, based on patient NO search for patient information

valueList1=patientDic1['001']

print(valueList1)

#4) container:amend

print('bafore amendment,patient information: ',patientDic1['001'])

patientDic1['001']=['Houzi',29,'1Diabetes','improving']

print('after amendment,patient information:',patientDic1['001'])

2、条件判断

'''多个条件判断'''

age=int(input('输出狗狗的年龄,按enter键获取对应人类的年龄: '))

if age < 0 :

print('狗狗年龄不能小于0')

elif age == 1:

print('相当于14岁的人')

elif age == 2 :

print('相当于22岁的人')

else:

human=22+(age-2)*5

print('对应人类年龄',human)

3、循环

可以利用循环来批量处理数据。

#container:what's the order of meal per day

eatList=['have No.1 meal','have No.2 meal','have No.3 meal']

#loop

for i in eatList:

print(i)

continue用于跳出当前循环

for key,value in gafataDict.items():

if(key=='苹果'):

continue

print('company: ',key,',stock ID: ',value)

break用于退出整个循环

#查询苹果公司的股票代码

number=0

for key,value in gafataDict.items():

number=number+1

if(key=='苹果'):

print('search',key,'company stock ID',value)

break

print('company: ',key,'company stock ID:',value)

4、函数

'''定义函数函数功能:两个数相加输入:x,y是要相加的两个数输出:两个数相加的和'''

def add(x,y):#remember to write :

z=x+y

return z

这是我的测试:

# zizi1 - practice

def ADD(x,y):

c=x+y

return c

#x,y都是数值类型不可变函数,c定义的函数里并不改变原来x,y的值,定义因变量c

#因为有x,y,c所以要制定返回哪一个return c!这个必不可少

A=2

B=3

C=ADD(x=A,y=B)

print('2 add 3 equals to',C)

函数参数:不可变数据类型 字符串、数字、元祖这3种是不可变数据类型,其他的都是可变数据类型。

5、其他概念

变量作用域

Python的作用域一共有2种:全局作用域,局部作用域

定义在函数内部的变量拥有一个局部的作用域,定义在函数外的拥有全局作用域, 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。

模块:

'''Python内置模块'''

#第1步:引入模块

import sys

#第2步:使用模块中的函数,属性

pathList=sys.path

print('Python路径为:\n',pathList)

第三方模块使用:

'''使用coonda命令安装包:conda install pandas使用第三方模块:pandaspanda是数据分析工具'''

#引入模块

import pandas as pd

#文件路径(在本地运行时日换成你自己的实际数据路径):找到目标文件--》右击选择get info

fileNameStr='/Users/escapingzizi/Desktop/SQL/SQL_猴子聊人物/数据分析(中级)(Python)/第2关:零基础掌握人工智能核心语言Python/数据/病历数据.xlsx'

#读取excel文件里的数据

x1 = pd.ExcelFile(fileNameStr)

#获取指定工作表sheet名称的数据

patientDf = x1.parse('Sheet1')

print(patientDf)

在这里要说一下对于mac用户因为没法显示文件存放的路径,所以在输入文件路径的时候要特别注意,可以用下面方法:

#获取文件的路径,我把文件放到notebook运行的环境中然后用下面的命名得出路径

os.path.dirname(os.path.abspath('病历数据.xlsx'))

在输入文件路径的时候注意别输错了。

三、Python入门实操b

这部分是关于数据结构的实操,数据结构在这里练习了:队列、栈、排序字典、计数器。

1、队列queue

队列就像你去餐厅外婆家吃饭排队,新来的人在队列尾部加入,叫做入队。

取完票的人从队列首部离开队列,叫做出队.

#导入collection包

from collections import deque

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

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

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

queue.append('006')

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

queue.popleft()

2、栈stack

栈这种数据结构有点像生活中的木桶。你往栈中加入新的元素,就是入栈,新的元素总是放在木桶的最上面。

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

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

print(stack)

#入栈:在栈顶加入元素

stack.append('知乎专栏')

#出栈:将栈顶元素移除

stack.pop()

3、排序字典

字典定义的时候默认是无序的,如果要排序可以使用排序字典功能。

'''OrderedDict:按照插入key的顺序,对字典排序'''

from collections import OrderedDict

#定义有序字典

gafataodDict=OrderedDict({'谷歌':'GOOG','亚马逊':'AMZN','Facebook':'FB','苹果':'AAPL','阿里巴巴':'BABA','腾讯':'0700'})

4、计数器

'''计数器'''

from collections import Counter

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

#出现次数最多的3个词

cDict.most_common(3)

答案是:[('的', 2), ('羽', 2), ('毛', 2)]

以上练习全部来自猴子老师推出的:《零基础掌握人工智能(AI)核心语言:Python》知乎live。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值