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

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)如果没想好怎么用, 可以是使用搜素引擎模式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容