Python语言简述
Python是一种动态类型的解释性语言,也是一种胶水语言,所谓胶水语言,是指可以调用别的语言编写的功能模块,将他们有机的结合在一起形成更高效的新程序。例如Python可以把C++、Java写的模块轻松结合起来协同工作,这样就能把C++的针对底层,java的面向对象两大优势统一到一个完整的程序中来。
Python中的Hello World
代码如下:
print('Hello World')
print('内容') 为打印该字符串的内容
Python中的变量定义和print函数
Python中的变量定义
在C语言之中变量的定义为:
int a =100;
在Python语言之中变量不需要进行类型定义,定义方式为:
a = 100
Python中的print函数
a=100
print(a)
print('文本1,%s文本2' % (count))
print('文本')
print函数的使用方式有几种如上几种:
第一种的输出为变量a的值
第二种的输出为文本1,+变量count的值+文本2
第三种的输出为直接打印文本的内容
Python的注释方法
有如下几种注释方式
# python的单行注释
"""
Python多行注释
Python多行注释
Python多行注释
"""
Python中的判断和循环
Python中的判断
if +else判断方式,双分支选择结构
# if 要判断的条件:
# 满足条件时要执行的事情
# else:
# 不满足条件时要执行的事情
age = input('请输入您的年龄')
age = int(age)
print(type(age))
if age >= 18:
print('恭喜您成年了,可以去网吧了')
else:
print('对不起,你还是个宝宝')
在执行 if 的命令时,由于input的输入的是文本类型,无法进行数字方面的比较,所以要先进行类型的转换,转换的方式为age = int(age),而后才能进行数字方面的比较。
if+elif+else判断方式,多分支选择结构
# if 条件1:
# 执行满足条件1的内容
# elif 条件2:
# 执行满足条件2的内容
# else:
# 既不满足条件1也不满足条件2要执行的事情
score = input('请输入你的数学成绩')
score = int(score)
if score>= 90:
print('你的成绩为A级')
elif score<90 and score>=80:
print('你的成绩为B级')
elif score<80 and score>=70:
print('你的成绩为C级')
elif score<70 and score>=60:
print('你的成绩为D级')
else:
print('你的成绩不及格')
Python中的循环
Python中的while循环
# while 循环条件:
# 循环体
# while True:
# 循环体
i=0
while i<5:
print(i)
i+=1
while True: 是死循环,可以进行无数次循环。
Python中的for循环
# for 临时变量 in 可迭代对象 (比如字符串,列表,元组等):
# 循环体
# Java,c
# for(i=0;i<100;i++){
# 循环体
# }
company = "neusoft"
for x in company:
print(x)
print(list(range(100)))
for i in range(2,100,2): #range(开始位置,终止位置,步长) 左闭右开区间
print(i)
#打印九九乘法表
for i in range(1,10):
for y in range(1,i+1):
h=i*y
print(y,'*',i,'=',h,end=' ') # end=' ' 进行不换行的操作
print('\n')
range()函数的作用为创建一个整数的列表,range(开始位置,终止位置,步长)为该函数的完整格式,该区间为一个左闭右开区间,即包括起始位置,但不包含终止位置,步长为每次变化时候的数字,即步长为2时,第二个数为开始位置+2。
Python循环的跳出方式
# break 跳出本层循环
#continue 跳出本次循环
# 计算1~100的偶数累加和
i=0
sum_num = 0
while i<=100:
i += 1
if i%2==1:
continue
sum_num += i
print(sum_num)
猜数字游戏
预备知识
如何生成随机整数
#输出a到b的所有整数,包括a,b在内,是闭区间
from random import randint
while True:
print(randint(a,b))
randint(a,b)为随机生成一个[a,b]的整数
如何退出循环
break 退出本层循环
continue 退出本次循环
代码实现
#猜数字游戏
from random import randint
#玩家在控制台输入要猜数字的范围 eg:{100,200}
max_num = int(input('请输入您要猜数字的最大值'))
min_num = int(input('请输入您要猜数字的最小值'))
#接下来玩家输入要猜的数字
computer_num = randint(min_num,max_num)
#要明确提示玩家数字是大还是小
# 才对了告诉玩家: 一次猜中:这是高手 两到五次猜中: 你也太厉害了 i次就猜中了 五次以上 洗洗睡吧,i次才才对
count = 0
while True:
if count == 0:
guess_num = int(input('老铁快来猜一猜'))
else:
guess_num = int(input('老铁再来猜一猜'))
count += 1
if guess_num < computer_num:
print('你猜小了')
elif guess_num > computer_num:
print('你猜大了')
else:
break
if count==1:
print('这是高手')
elif count>=2 and count<=5:
print('你也太厉害了,%s次就猜中了'%(count))
else:
print('洗洗睡吧,%s次才猜中' % (count))
常用数据的类型
一 列表
1.定义
和c中的数组很相似,与数组不同的是可以存储不同类型的数据(灵活)
2.创建
列表的创建格式为 名称 = [ ],前面是列表的名称,后面是列表里面的数据内容 ,具体代码如下
hero_name = ['鲁班七号','狄仁杰','安琪拉','1000']
3.访问
与数组类似,列表的元素也可以单独访问,通过索引值的方式来访问,索引值的首位为0
# 访问方式 hero_name[索引值]
print(hero_name[2])
4.修改
通过重新赋值的方式进行修改,代码如下
hero_name[3]='后羿'
print('修改后的列表',hero_name)
#通过赋值的方式将第四个元素1000换成’后羿‘
5.删除
删除某个元素,通过del 列表名[索引值]的方式来删除,代码如下
del hero_name[0]
print('删除后的列表',hero_name)
6.列表推导式
7.添加元素
利用列表名.append()的方式来进行添加,具体代码如下:
# 生成 1 到 20 的列表
li = []
for x in range(1,21):
li.append(x)
print(li)
二 字符串
1.定义
' '单引号," "双引号都可以定义字符串,但在文本语句中存在着单引号或者双引号的时候,定义字符串的时候需要用另外一种引号,代码如下
text1 = '"Hello World"'
text2 = "'Hello' World"
2.如何把列表变成字符串
str_name = '内容'.join(name) '内容'为元素与元素之间的间隔符
name= ['赵','四','和','刘','能']
str_name = '_'.join(name)
str_name = ' '.join(name)
print(str_name)
3.去空格操作
去空格的命令为字符串名称=字符串名称.strip(),且只能去掉前后两部分的空格,中间的空格不能去掉,代码如下
name2= ' neusoft '
print(len(name2)) #len 判断变量元素个数
name2 = name2.strip()
print(len(name2)) #len 判断变量元素个数
其中len(name2)为测定字符串的元素个数,空格也是元素,可以通过这种方式来判断的空格是否被删除
4.替换操作
可以将字符串的某一部分用另一部分替代,命令名称为字符串名称=字符串名称.replace('被替换的名称','替换后的名称')
price = 'RMB998'
price = price.replace('RMB','$')
print(price)
三 数字
较为简单,不再赘述。
四 元组
1.创建
元组,英文为tuple,创建元组和创建列表很相似,元组和列表不同的是,元组不支持修改,且占用的内存空间较小,其中元组中只有一个元素时,可能变量类型会和数字混淆,需要利用一些方式来区分,代码如下
a = ('zhangsan','lisi',1000)
b=('1000')
print(type(b))
b=('1000',) #通过加一个逗号来区别数字和元组
print(type(b))
type是指变量的类型,print(type(b))是将b的类型打印出来
2.访问
访问方式和列表相似,即为元组名称[索引值]
print(a[2]) #即为输出元组中的第三个元素
五 字典
1.创建
字典,英文为dict,是一种以键值对形式存储的数据结构,即为key→value,创建字典的方式与创建元组,列表相似,但是用的为大括号{ },代码如下:
info = {'name':'刘强东','age':45,'address':'北京市朝阳区'}
print(len(info)) #其中键和值相对应,为一个元素,所以len(info)的结果为3
2.访问元素
有两种访问格式,其中第一种如果访问内容不存在会报错,第二种会自动添加该元素,并按照要求赋予初值
print(info['name']) #此方式时,输出的内容若是不存在,会报错
sex = info.get('sex','female') #当sex不存在时,会建立sex键 并赋予默认值female作为对应
3.修改
和列表的修改相似,代码如下
info['age']=55
print('修改后字典的值',info['age'])
4.添加
当键不存在的时候为添加操作
info['sex']= 'female'
print('增加后字典的值',info['sex'])
5.删除
和列表的删除相似,代码如下
del info['address']
print('info')
6.常用的操作
1.获取字典中的所有键,是将字典中所有的键提取出来,代码如下
#获取字典中所有的键
print(info.keys())
2.获取字典中的所有值,是将字典中所有的值提取出来,代码如下
#获取字典中所有的值
print(info.values())
3.获取所有的键和值,是将字典中所有的键和值提取出来,代码如下
#获取所有的键和值
print(info.items())
六 集合
1.创建
集合,英文为set,集合和字典类似,也是以大括号的形式存在,其特点是无序,里面的元素不重复
set1 = {111,666}
2.访问元素
与元组,列表类似,用循环方式遍历,代码如下:
set1 = {111,666}
for x in set1:
print(x)
七 第三方库
1.安装
因为要进行三国出场人物的频次的分析,所以要将整部三国演义进行逐词的分析,也就是需要将一整句话,分为词汇与词汇的整合形式,Python的内置函数库中并不包含此类型的内容,所以我们要导入第三方的数据库---jieba
如何安装第三方数据库呢,首先要知道数据库的名称,也就是俗称的包名,而后在Terminal的框中输入如下代码
pip install 包名
#对于jieba库来说就是
pip install jieba
因为下载第三方库可能都是在国外的网站,速度较慢,可以使用镜像的下载方式,步骤如下
1.在用户目录下新建 pip文件夹
2.新建pip.ini 文件,文件中的内容为
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
2.导入
导入的代码如下,
#import 包名
#对于jieba库来说就是
import jieba
3.jieba库中函数的应用
jieba库则提供了中文分词的函数,其中介绍了精准分词和搜索引擎分词两种,代码如下
# 导入jieba库
import jieba
txt = '我来到北京清华大学'
# 精确分词模式(常用) nlp自然语言处理
seg_list = jieba.lcut(txt)
print(seg_list)
# 搜索引擎模式, 先执行精确模式, 然后再对长词进行分析
seg_list2 = jieba.lcut_for_search(txt)
print(seg_list2)