Python中的循環(huán)
- while循環(huán):
while 循環(huán)條件:
(4個空格)循環(huán)體
計算1-100 之間的累加和
sum_num = 0
i = 1
while i <= 100:
#對count進行累加
sum_num += i
#i = i + 1
#python中并沒有設(shè)置專門的i++操作,使用i+ =1 進行操作
i += 1
print(sum_num)
#5050
break continue在循環(huán)中的應(yīng)用
- break是跳出本層循環(huán)
- continue 跳過本次循環(huán)
- pass是空語句
計算1-100之間的奇數(shù)和
i = 1
sum_num = 0
while i <=100:
#把所有的偶數(shù)過濾掉
if i % 2 ==0: #偶數(shù)的時候跳出循環(huán)
i += 1
continue
sum_num += i
i +=1
print(sum_num)
#2500
生成一定范圍內(nèi)的隨機數(shù)
導(dǎo)入隨機數(shù)模塊:
from random import randint #左閉右閉
在10-15之間產(chǎn)生隨機數(shù):
print(randint(10,15))
驗證randint的左閉右閉
while True:
print(randint(10,15))
猜數(shù)字游戲:
在控制臺中輸入 :請給定要猜的最大數(shù)字,請給定要猜的最小數(shù)字。
eg: [1, 100] 給定數(shù)字的區(qū)間,電腦在這個區(qū)間隨機生成一個數(shù)字
我們要在1 到100 之間猜出這個數(shù)字, 因為一次猜對的可能性小,
我們要在每次猜的時候提示猜大了還是猜小了,
如果猜1次就對,提示你也太厲害了吧,這是高手
如果猜2-5次對,提示恭喜只用了 i次就猜對了數(shù)字
如果猜 5次以上,提示,你也太菜了吧, i 次才能猜的出來,洗洗睡吧
代碼
from random import randint
max_num =int(input("請給定要猜的最大數(shù)字"))
min_num =int(input("請給定要猜的最小數(shù)字"))
#隨機生成一個數(shù)字,讓用戶猜這個數(shù)字
generate_num =randint(min_num,max_num)
count = 0
while True:
count += 1
guess_num = int(input("請輸入您要猜的數(shù)字"))
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循環(huán)
格式:
for 臨時變量 in 可迭代對象:
(4個空格) 循環(huán)體
- 示例:
取出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中的奇數(shù)和
sum_num = 0
for i in range(1,101,2): #rang(起始位置,終止位置,步長)函數(shù)生成的是左閉右開的區(qū)間數(shù)
sum_num += i
print(sum_num)
用for循環(huán)打印打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(j,'x',i ,'=',j*i,end='')
print()
常用數(shù)據(jù)類型:number,字符串,列表(list),元組(tuple),字典(dict),集合(set)
- 列表(list):python中的列表和c中數(shù)組很像,不同的地方是他可以儲存不同的數(shù)據(jù)類型
list1 =[1,2,'張三','list'] #創(chuàng)建第一個列表
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)#將數(shù)字轉(zhuǎn)化成string類型
#向列表里添加元素
skill_list.append(skill)
print(skill_list)
創(chuàng)建一個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這個數(shù)字
if 9 in a :
print('9在a中')
- 刪除
刪除技能2這個元素
#del 要刪除的列表名[索引]
del skill_list[1]
print('刪除后',skill_list)
- 修改
#修改skill_list最后一個元素為 垂直打擊
skill_list[2] = '垂直打擊'
print('修改后',skill_list)
- 元組
- 創(chuàng)建元組, () 表示元組
a=(1,2,'lisi')
print(type(a))
特點:和列表很相似,只是元組不能進行修改
元組既然不能修改,還跟列表相似,要他有何用?
元組得優(yōu)點:
1)元祖的速度快于列表
2)不能修改可以帶來'寫保護',安全
3)元組可以常被作為字典的鍵使用
4)只有一個元素的元組需在元素后加逗號,避免識別成int類型
- 字符串的常用操作
特點:
1)字符串創(chuàng)建 可以使用單引號也可以使用雙引號
2)涉及到引號的嵌套時可采用外層單引號,里層雙引號的方式,相反也可
- 示例
str1 = 'neusoft'
str2 = "歡迎來到"
str3 = '今天"22"號'
print(str1)
print(str2)
print(str3)
#neusoft
#歡迎來到
- replace()替換
- 示例
price ='¥988'
price=price.replace('¥','')#替換后徐重新賦值price
print(price)
- strip() 去兩端的空格
- 示例
name = ' life is short '
print(len(name))
name =name.strip()
print('去空格后',len(name))
- join() 主要應(yīng)用于把列表變成字符串
- 示例
str_intro = " " 當(dāng)空字符串中引號之間是什么,轉(zhuǎn)換字符串中間就是什么
li = ["I", "love", "wangzhe"]
#把li變成字符串
str4 = str_intro.join(li)
print(str4)
或
print(" " .join(li)) #提取列表中的字符串內(nèi)容時
- len()內(nèi)置函數(shù)
功能:
用于檢測容器內(nèi)元素的個數(shù)
- 示例
print(len(str2))
- *操作
特點: *代表復(fù)制 +代表加
- 示例
print(str1*3)
print(str1+str(3))或者print(str1+'3')
8)字符串的格式化輸出 最流行的是format函數(shù)輸出
格式:
'{}字符串{}'.format(變量1, 變量2)
- 示例
hero ='魯班七號'
grade = 13
print('您當(dāng)前使用的英雄是{},等級為{}'.format(hero,grade))
#您當(dāng)前使用的英雄是魯班七號,等級為13
- 字典
使用{}創(chuàng)建字典,字典中的每一個元素都以鍵值對的形式存在,中間用冒號隔開
- 示例
stu_info = {'name': '劉向東', 'addr': '北京', 'age': '18'}
#print(stu_info)
#字典的訪問,通過鍵訪問值
print(stu_info['name'])
#劉向東
1)字典的修改,訪問鍵然后賦值
stu_info['age'] = 50
print('修改后的值',stu_info)
2)增加 當(dāng)字典中不存在這個鍵的時候,就是相當(dāng)于往字典中添加了元素
stu_info['sex'] = 'female'
print('增加后', stu_info)
3)解決訪問鍵不存在時報錯情況
print(stu_info.get('sex', 'female'))#當(dāng)字典中存在該鍵時
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)轉(zhuǎn)化成字典
print(dict(stu_info_list))
9)字典的遍歷輸出
for k, v in stu_info.items():
print(k, ';', v)
- 集合 :
也使用{}表示,只不過{}中沒有元素時代表的是空字典
特點:無序,不重復(fù)
set1 = {'zhangsan',3333,124}
print(type(set1)) #type表示類型
#<class 'set'>
1)集合的遍歷
for x in set1:
print(x)
中文分詞
英文單詞由于單詞之間是有空格的,所以不需要分詞,中文則不同
這就需要我們使用第三方庫來進行分割
jieba結(jié)巴粉刺是目前最流行的中文分詞庫
特點:結(jié)巴分詞的特點:
支持三種模式:
a)精確模式
seg = '我來北京上大學(xué)'
seg_list = jieba.lcut(seg)
print(seg_list)
b)全模式:
cut_all參數(shù)用來控制是否采用全模式
將字符串中所有的分詞結(jié)果都列舉出來
特點:全, 缺點:冗余性大
seg_list1 = jieba.lcut(seg, cut_all=True)
print(seg_list1)
c)搜索引擎模式
首先執(zhí)行精確模式,然后對其中長詞進一步切分得到的結(jié)果
該模式更傾向于尋找短句,這種方式具有一定的冗余度,但是比全模式要少
seg_list2 = jieba.lcut_for_search('小明碩士畢業(yè)于北京航天航空大學(xué)')
print(seg_list2)
1)安裝jieba結(jié)巴分詞
pip install jieba
2)導(dǎo)入jieba
import jieba
- 目前導(dǎo)入模塊的方式有兩種:
1))import 模塊名字
import turtle
import jieba
2))from 模塊 import 對象或函數(shù)(有需要就導(dǎo)入,可以同時導(dǎo)入多個)
from random import randint
或
import random
random.randint
總結(jié):
如何選擇模式:
a)如果希望對文本詞分詞準確,不產(chǎn)生冗余 ---> 精確模式
b)如果希望對文本詞分詞更為準確,不漏點任何分詞的可能 ---->全模式
c)如果沒想好怎么用, 可以是使用搜素引擎模式