学习任何的新知识和新技能,基础都是最关键的,就像小的时候学习语文,一定是从拼音开始学起,这是之后学习汉字的基本功,是必须掌握的最基础知识。那学习Python又有哪些最少必要知识呢?
学习Python永远都绕不过去的几个知识点是:数据类型、运算符、条件判断、循环、函数、模块。
一、数据类型
数据类型包含以下六类:Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
Set(集合)
1.数字
#数字类型有int(整数型)、float(浮点型)、long(长整型)、complex(复数型),其中整数型和浮点型最为常用。
print('(1)整数型')
age = 50
print(age)
print('(2)浮点型')
money = 66.66
print(money)
(1)整数型
50
(2)浮点型
66.66
2.字符串
#字符串介绍
Str1 = 'Hello'
Str2 = 'world!'
Str3 = Str1+Str2
print('用+将字符串合并:',Str3)
Str4 = '据说%s和%s是好朋友'%('李雷','韩梅梅')
print(Str4)
print("Hello world!")
'''字符串是由数字、字母、下划线组成的一串字符,上面Str1、Str2、Str4中单引号内的内容都是字符串。单引号可以换为双引号,本质上不会发生任何的变化。若换成3个单引号或者双引号,引号内的内容同意是字符串,只是这时起到的是注释作用'''
用+将字符串合并: Helloworld!
据说李雷 和 韩梅梅是好朋友
Hello world!
'字符串是由数字、字母、下划线组成的一串字符,上面Str1、Str2、Str4中单引号内的内容都是字符串。单引号可以换为双引号,\n本质上不会发生任何的变化。若换成3个单引号或者双引号,引号内的内容同意是字符串,只是这时起到的是注释作用'
#字符串分片与索引
字符串分片是指从字符串中取出需要的一段元素,我们可以指定从字符串的多少位开始取到多少位结束。但在取值的过程中,字符串读取的序列数是从0开始,而不是我们通常习惯的1,且结束位中不包含这一位的元素。例如要使用Str3字符串中1-5位的数据,那分片则是取0:5。
print(Str3[0])
print(Str3[1])
H
e
print(Str3[:5])
print(Str3[0:5])
print(Str3[5:])
print(Str3[-6:])
Hello
Hello
world!
world!
3.列表
nameList = ['牛','马','羊','猴']
nameLen = len(nameList)
print('列表长度:数目:',nameLen)
print(nameList)
列表长度:数目: 4
['牛', '马', '羊', '猴']
#(1)列表操作:增加
nameList.append('狗')
print('增加1个元素:',nameList)
#(2)列表操作:删除
del nameList[1]
print('删除第二个元素',nameList)
#(3)列表操作:查询
name1 = nameList[0]
print('查询列表的第1个元素:',name1)
#(4)列表操作:修改
print('修改之前第一个元素:',nameList[0])
nameList[0] = '牛魔王'
print('修改之后第一个元素:',nameList[0])
增加1个元素: ['牛', '马', '羊', '猴', '狗', '狗', '狗']
删除第二个元素 ['牛', '羊', '猴', '狗', '狗', '狗']
查询列表的第1个元素: 牛
修改之前第一个元素: 牛
修改之后第一个元素: 牛魔王
4.元组
GAFATA = ('Google','Apple','Facebook','Amazon','Tencent','Alibaba')
GAFATA_Len = len(GAFATA)
print('元组长度:',GAFATA_Len)
print('第1个元素的值:',GAFATA[0])
元组长度: 6
第1个元素的值: Google
5.集合
GAFATA_Set = {'Google','Apple','Facebook','Amazon','Tencent','Alibaba','Alibaba'}
print(GAFATA_Set)
#(1)集合操作:增加
#定义一个空的集合
stockSets=set()
#使用update()增加元素
stockSets.update(['Tencent','Alibaba','JD'])
print(stockSets)
#(2)集合操作:删除
stockSets.discard('JD')
print(stockSets)
#(3)集合操作:查找
set1 = 'Tencent' in stockSets
print(set1)
{'Tencent', 'Apple', 'Google', 'Facebook', 'Amazon', 'Alibaba'}
{'JD', 'Tencent', 'Alibaba'}
{'Tencent', 'Alibaba'}
True
6.字典
animalsDic = {'001':'ox','002':'horse','003':'sheep','004':'monkey'}
print(animalsDic)
{'001': 'ox', '002': 'horse', '003': 'sheep', '004': 'monkey'}
#(1)字典操作:增加
animalsDic['005']=['dog']
print(animalsDic)
#(2)字典操作:删除
del animalsDic['005']
print(animalsDic)
#(3)字典操作:查询
valueList1 = animalsDic['001']
print(valueList1)
#(4)字典操作:修改
animalsDic['001'] = ['pig']
print(animalsDic['001'])
{'001': ['pig'], '002': 'horse', '003': 'sheep', '004': 'monkey', '005': ['dog']}
{'001': ['pig'], '002': 'horse', '003': 'sheep', '004': 'monkey'}
['pig']
['pig']
小结
Python有六个标准的数据类型:字符串、数字、列表、元组、字典、集合,其中列表、元组、字典、集合统称为容器。区别为:1.元组不可修改,其他3种均可修改;2.列表和元组是有序的,而字典和集合是无序的。
二、运算符
运算符包含算术运算符、逻辑运算符、位运算符等等,这里只简单介绍算术运算符和逻辑运算符。
1.算术运算符
算术运算符其实就是指我们已经很熟悉的加、减、乘、除、取余数这些四则运算。
a = 1
b = 2
c = 8
d = 9
print(a+b) #求和
print(b-a) #求相减
print(a*b) #求乘数
print(c/b) #求除数
print(d%b) #求余数
3
1
2
4.0
1
2.逻辑运算符
age = 10
if age == 10:
print('判断条件是True')
else:
print('判断条件是False')
判断条件是True
三、条件判断
#《摔跤吧,爸爸》豆瓣评分
scoreNum = 9.1
if scoreNum >= 8:
print('我要去看这部电影')
else:
print('电影太烂,不去看')
我要去看这部电影
#定义动物列表
nameList = ['ox', 'horse','sheep','monkey']
if 'monkey' not in nameList:
print('列表中没有猴子')
else:
print('列表中有猴子')
列表中有猴子
age = int(input('请输入你家狗狗的年龄,:'))
if age < 0:
print('狗狗年龄不能小于0')
elif age == 1:
print('相当于14岁的人')
elif age == 2:
print('相当于22岁的人')
else:
human = 22+(age-2)*6
print('对应人类年龄:',human)
请输入你家狗狗的年龄,:3
对应人类年龄: 28
四、循环
#容器:1天中吃第几次饭
eatList = ['吃第1次饭','吃第2次饭','吃第3次饭']
#循环
for i in eatList:
print(i)
吃第1次饭
吃第2次饭
吃第3次饭
#定义字典,GAFATA6家公司股票,key是公司名称,value是股票代码
GAFATA_Dic = {'Tecent':'HK:00700','Alibaba':'baba','Apple':'Apple','Google':'GOOGLE','Facebook':'fb','Amazon':'amzn'}
#将股票代码全部大写
for key,value in GAFATA_Dic.items():#返回可遍历的键(key), 值(value)
newValue = value.upper()
GAFATA_Dic[key] = newValue
print(GAFATA_Dic)
{'Tecent': 'HK:00700', 'Alibaba': 'BABA', 'Apple': 'APPLE', 'Google': 'GOOGLE', 'Facebook': 'FB', 'Amazon': 'AMZN'}
#continue用于跳出当前循环
for key,value in GAFATA_Dic.items():
if(key=='Apple'):
continue
print('当前公司:',key,',当前股票代码:',value)
当前公司: Tecent ,当前股票代码: HK:00700
当前公司: Alibaba ,当前股票代码: baba
当前公司: Google ,当前股票代码: GOOGLE
当前公司: Facebook ,当前股票代码: fb
当前公司: Amazon ,当前股票代码: amzn
#break用于退出整个循环
number = 0
for key,value in GAFATA_Dic.items():
number = number+1
if(key=='Apple'):
print('查找',key,'公司的股票代码是',value)
break
print('当前公司:',key,'当前股票代码:',value,'number值:',number)
当前公司: Tecent 当前股票代码: HK:00700 number值: 1
当前公司: Alibaba 当前股票代码: baba number值: 2
查找 Apple 公司的股票代码是 Apple
五、函数
函数包含内置函数和自定函数,内置函数为Python本身自带的,可以直接使用,例如print就是一个内置函数。当没有内置函数,我们可以通过自定义来构造新的函数。
1.内置函数
print(abs(-10)) #求绝对值函数
for i in range(1,10):
print(i) #取整数值函数
print(max(1,10,100)) #取最大值函数
10
1
2
3
4
5
6
7
8
9
100
2.自定义函数
def add(x,y):
z=x+y
return z
#调用函数
a = 2
b = 3
c=add(a,b)
print(c)
5
3.函数参数:不可变数据类型
#字符串、元祖、数值为不可变数据类型,其他的都是可变数据类型
def changeInt(a):
a = a+1
b=1
print('调用函数之前b的值=',b)
changeInt(a=b)
print('调用函数之后b的值=',b)
调用函数之前b的值= 1
调用函数之后b的值= 1
4.函数参数:可变数据类型
#参数是可变数据类型:传递的是该变量的引用地址
def changeList(inputList):
inputList.append('乔布斯')
nameList = ['马云','刘强东']
print('调用函数之前的值:',nameList)
changeList(inputList=nameList)
print('调用函数之后的值:',nameList)
调用函数之前的值: ['马云', '刘强东']
调用函数之后的值: ['马云', '刘强东', '乔布斯']
5.变量作用域
def test():
aStr = '别理会他人闲言闲语,今日随他们,让他们说吧,你的机会将会到来,再来证明自己。'
#在函数外面,无法访问函数内的局部变量aStr
print(aStr)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in
3
4 #在函数外面,访问函数内的局部变量aStr
----> 5 print(aStr)
NameError: name 'aStr' is not defined
小结
利用判定质数的案例,对函数自定义、循环、条件判断进行综合使用
def weather_is_prime(num):
if num > 1:
for i in range(2,num):
if num % i == 0:
print(num,'不是质数')
break
else:
print(num,'是质数')
else:
print(num,'不是质数')
return
weather_is_prime(10)
weather_is_prime(7)
10 不是质数
7 是质数
六、模块
1.Python内置标准模块
和函数一样,Python本身也自带了一些标准的模块库,包括命令行参数sys、数学函数math、随机函数random、日期时间datetime等等。
import sys
pathList = sys.path
print('Python路径为:\n',pathList)
Python路径为:
['C:\\Users\\gyl21', 'C:\\Users\\gyl21\\Anaconda3\\python37.zip', 'C:\\Users\\gyl21\\Anaconda3\\DLLs', 'C:\\Users\\gyl21\\Anaconda3\\lib', 'C:\\Users\\gyl21\\Anaconda3', '', 'C:\\Users\\gyl21\\Anaconda3\\lib\\site-packages', 'C:\\Users\\gyl21\\Anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\gyl21\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\gyl21\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Users\\gyl21\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\gyl21\\.ipython']
import math
a = math.sin(1/2)
print(a)
0.479425538604203
import random
a = random.random()
print(a)
0.4238178314511116
import datetime
a = datetime.date.today()
print(a)
2020-02-10
2.第三方包
Python有着非常强大的第三方库,例如pandas、numpy、matplotlib等等。 可以通过import、from xx import xx引入第三方库。
#引入模块
import pandas as pd
fileNameStr=r'C:\Users\gyl21\Desktop\数据分析(高级)(Python)\第2关:零基础掌握人工智能核心语言Python\数据\病历数据.xlsx'
xl = pd.ExcelFile(fileNameStr)
patientDf = xl.parse('Sheet1')
#获取指定工作表(Sheet)名称的数据
print(patientDf)
病人编号 姓名 年龄 糖尿病类型 病情
0 1 张三 29 1型糖尿病 较差
1 2 李四 34 2型糖尿病 好转
2 3 王五 28 1型糖尿病 显著好转
3 4 孙六 52 2型糖尿病 较差
以上内容简单对Python入门学习的6个最少必要知识进行了简单总结,其中各个板块都还有很多的知识是没有说到的,但基础的入门并不是要完全记住所有代码背后的含义,而是培养一个大致的方向感。就像小学时写作文一样,当遇到不认识的字怎么办,当然是去查字典。学习Python编程也是一样的道理,我们不可能把所有的代码含义都学会之后才开始敲代码,而是不断地在运用过程中去学习,在一次又一次不断重复地过程中去熟悉和精进。