美文网首页初学者
Python循环、随机数、列表、元组、字符串、集合、jieba分

Python循环、随机数、列表、元组、字符串、集合、jieba分

作者: C_Z_Q_ | 来源:发表于2019-10-22 17:59 被阅读0次

Python中的循环

  • while循环:
    while 循环条件:
    (4个空格)循环体
计算1-100 之间的累加和
sum_num = 0
i  = 1
while i <= 100:
    #对count进行累加
    sum_num += i
    #i = i + 1
    #python中并没有设置专门的i++操作,使用i+ =1 进行操作
    i += 1
print(sum_num)
#5050

break continue在循环中的应用

  • break是跳出本层循环
  • continue 跳过本次循环
  • pass是空语句
计算1-100之间的奇数和
i = 1
sum_num = 0
while i  <=100:
    #把所有的偶数过滤掉
    if i % 2 ==0: #偶数的时候跳出循环
        i += 1
        continue
    sum_num += i
    i +=1
print(sum_num)
#2500

生成一定范围内的随机数
导入随机数模块:

from random import randint #左闭右闭

在10-15之间产生随机数:

print(randint(10,15))

验证randint的左闭右闭

while True:
print(randint(10,15))

猜数字游戏:

在控制台中输入 :请给定要猜的最大数字,请给定要猜的最小数字。
eg: [1, 100] 给定数字的区间,电脑在这个区间随机生成一个数字
我们要在1 到100 之间猜出这个数字, 因为一次猜对的可能性小,
我们要在每次猜的时候提示猜大了还是猜小了,
如果猜1次就对,提示你也太厉害了吧,这是高手
如果猜2-5次对,提示恭喜只用了 i次就猜对了数字
如果猜 5次以上,提示,你也太菜了吧, i 次才能猜的出来,洗洗睡吧

代码
from random import randint
max_num =int(input("请给定要猜的最大数字"))
min_num =int(input("请给定要猜的最小数字"))
#随机生成一个数字,让用户猜这个数字
generate_num =randint(min_num,max_num)
count = 0
while True:
    count += 1
    guess_num = int(input("请输入您要猜的数字"))
    if guess_num < generate_num:
        print("您猜小了")
    elif guess_num > generate_num:
        print('您好像猜大了')
    else:
        #猜对的情况
        if count == 1:
            print('你也太厉害了,一次就猜对了,高手')
        elif count > 1 and count <6:
            print('恭喜你只用了‘,count,’次就猜对啦')
        else:
            print('回去洗洗睡吧')
for循环

格式:
for 临时变量 in 可迭代对象:
(4个空格) 循环体

  • 示例:
    取出neusoft中的每一个字母
name = 'neusoft'
#遍历这个单词的每一个字母
 for x in name :     #临时变量不需要提前声明
     print(x)
  • 求1到100的累加和
sum_num = 0
for i in range(1,101):
     sum_num += i
 print(sum_num)
  • 求1到100中的奇数和
 sum_num = 0
  for i in range(1,101,2):  #rang(起始位置,终止位置,步长)函数生成的是左闭右开的区间数
     sum_num += i
 print(sum_num)

用for循环打印打印九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(j,'x',i ,'=',j*i,end='')
    print()

常用数据类型:number,字符串,列表(list),元组(tuple),字典(dict),集合(set)

  1. 列表(list):python中的列表和c中数组很像,不同的地方是他可以储存不同的数据类型
list1 =[1,2,'张三','list']   #创建第一个列表
print(type(list1))#<class 'list'>
print(list1)#[1, 2, '张三', 'list']
 #遍历列表,把元素一个一个取出来
#for 临时变量 in可迭代对象
for x in list1:
    print(x)
  • 列表的的增加操作
skill_list = []
for i in range(1,5):
     skill = '技能' + str(i)#将数字转化成string类型
    #向列表里添加元素
     skill_list.append(skill)
print(skill_list)

创建一个a =[0,1,2,3,....10]的列表

a =[]
for i in range(0,11):
    a.append(i)
print(a)
  • 访问
    访问skill_list的第二个元素
print(skill_list[1])
  • 判断a列表中是否有9这个数字
if 9 in  a :
    print('9在a中')
  • 删除
    删除技能2这个元素
#del 要删除的列表名[索引]
del skill_list[1]
print('删除后',skill_list)
  • 修改
#修改skill_list最后一个元素为   垂直打击
skill_list[2] = '垂直打击'
print('修改后',skill_list)
  1. 元组
  • 创建元组, () 表示元组
a=(1,2,'lisi')
print(type(a))

特点:和列表很相似,只是元组不能进行修改
元组既然不能修改,还跟列表相似,要他有何用?
元组得优点:
1)元祖的速度快于列表
2)不能修改可以带来'写保护',安全
3)元组可以常被作为字典的键使用
4)只有一个元素的元组需在元素后加逗号,避免识别成int类型

  1. 字符串的常用操作
    特点:
    1)字符串创建 可以使用单引号也可以使用双引号
    2)涉及到引号的嵌套时可采用外层单引号,里层双引号的方式,相反也可
  • 示例
str1 = 'neusoft'
str2 = "欢迎来到"
 str3 = '今天"22"号'
print(str1)
print(str2)
print(str3)
#neusoft
#欢迎来到
  1. replace()替换
  • 示例
price ='¥988'
price=price.replace('¥','')#替换后徐重新赋值price
print(price)
  1. strip() 去两端的空格
  • 示例
name = '  life  is  short  '
print(len(name))
name =name.strip()
print('去空格后',len(name))
  1. join() 主要应用于把列表变成字符串
  • 示例
str_intro = " "    当空字符串中引号之间是什么,转换字符串中间就是什么
li = ["I", "love", "wangzhe"]
 #把li变成字符串
 str4 = str_intro.join(li)
 print(str4)
或
print(" " .join(li))   #提取列表中的字符串内容时
  1. len()内置函数
    功能:
    用于检测容器内元素的个数
  • 示例
print(len(str2))
  1. *操作
    特点: *代表复制 +代表加
  • 示例
print(str1*3)
print(str1+str(3))或者print(str1+'3')

8)字符串的格式化输出 最流行的是format函数输出
格式:
'{}字符串{}'.format(变量1, 变量2)

  • 示例
hero ='鲁班七号'
grade = 13
print('您当前使用的英雄是{},等级为{}'.format(hero,grade))
#您当前使用的英雄是鲁班七号,等级为13
  1. 字典
    使用{}创建字典,字典中的每一个元素都以键值对的形式存在,中间用冒号隔开
  • 示例
stu_info = {'name': '刘向东', 'addr': '北京', 'age': '18'}
#print(stu_info)
#字典的访问,通过键访问值
print(stu_info['name'])
#刘向东

1)字典的修改,访问键然后赋值

stu_info['age'] = 50
print('修改后的值',stu_info)

2)增加 当字典中不存在这个键的时候,就是相当于往字典中添加了元素

stu_info['sex'] = 'female'
print('增加后', stu_info)

3)解决访问键不存在时报错情况

print(stu_info.get('sex', 'female'))#当字典中存在该键时

4)删除
del 字典['键']

del stu_info['sex']
print('删除后的',stu_info)

5)返回字典所有的键 k

print(stu_info.keys())

6)#返回字典中所有的值 v

print(stu_info.values())

7)返回所有键值对:
返回形式是列表,列表中的每一个元素都是一个元组

print(stu_info.items())
stu_info_list = stu_info.items()

8)转化成字典

print(dict(stu_info_list))

9)字典的遍历输出

for k, v in stu_info.items():
    print(k, ';', v)
  1. 集合 :
    也使用{}表示,只不过{}中没有元素时代表的是空字典
    特点:无序,不重复
set1 = {'zhangsan',3333,124}
print(type(set1))  #type表示类型
#<class 'set'>

1)集合的遍历

for x in set1:
    print(x)

中文分词

英文单词由于单词之间是有空格的,所以不需要分词,中文则不同
这就需要我们使用第三方库来进行分割
jieba结巴粉刺是目前最流行的中文分词库
特点:结巴分词的特点:
支持三种模式:
a)精确模式

seg = '我来北京上大学'
seg_list = jieba.lcut(seg)
print(seg_list)

b)全模式:
cut_all参数用来控制是否采用全模式
将字符串中所有的分词结果都列举出来
特点:全, 缺点:冗余性大

seg_list1 = jieba.lcut(seg, cut_all=True)
print(seg_list1)

c)搜索引擎模式
首先执行精确模式,然后对其中长词进一步切分得到的结果
该模式更倾向于寻找短句,这种方式具有一定的冗余度,但是比全模式要少

seg_list2 = jieba.lcut_for_search('小明硕士毕业于北京航天航空大学')
print(seg_list2)

1)安装jieba结巴分词

pip install jieba

2)导入jieba

import jieba
  • 目前导入模块的方式有两种:
    1))import 模块名字
import turtle
import jieba

2))from 模块 import 对象或函数(有需要就导入,可以同时导入多个)

from random import randint
或
import random
random.randint
总结:

如何选择模式:
a)如果希望对文本词分词准确,不产生冗余 ---> 精确模式
b)如果希望对文本词分词更为准确,不漏点任何分词的可能 ---->全模式
c)如果没想好怎么用, 可以是使用搜素引擎模式

相关文章

网友评论

    本文标题:Python循环、随机数、列表、元组、字符串、集合、jieba分

    本文链接:https://www.haomeiwen.com/subject/rtsqvctx.html