目录
- day07(数据结构)
- 1. if 判断——分为三个分支结构
- 2. for循环结构
- 3. 异常处理(就是处理异常,报错Error)
- 4.常用字符串内置方法
- (1)索引取值
- (2)切片
- (3)成员运算
- (4)for循环
- (5)len()字符串长度
- (6)replace()替换值
- (7)strip() :默认去掉字符串两端的空格
- (8)lstrip()/rstrip() :去掉字符串的左端/右端
- (9)startwith()/endwith() :以...开头/以...结尾
- (10)find()/index() :获取某一元素的索引位置
- (11)join() :把列表内的元素拼接出来,生成字符串
- (12)split() :把字符串切割,生成列表
- (13)center()/ljust()/rjust():打印更美观,居中/居左/居右
- (14)isdigit()/isalpha() :是否为纯数字/是否为纯字母
- (15)count() 计数
- split() join()和jieba模块的比较
day07(数据结构)
1. if 判断——分为三个分支结构
按照从上往下运行
(1)单分支结构
if 条件:
代码块
(2)双分支结构
if 条件:
代码块 条件1成立执行这里
else:
代码块 条件1不成立执行这里
(3)三分之一结构
在没有else结尾的 if elif elif。。。elif中,等同于if if if 。。。 if
if 条件1:
代码块 条件1成立执行这里
elif 条件2:
代码块 条件1不成立且条件2成立,执行这里
elif 条件3:
代码块 条件1,2都不成立,条件3成立,执行这里
。。。
else:
代码块 以上条件都不成立,执行这里
2. for循环结构
(1)for + break
中断本层循环,继续下一层循环
(2) for +continue
中断本次循环,不执行下面的代码(continue不应该放在最后一行,continue一般放在中间)
for i in range(1,13):
for j in range(1,32):
if i==2 and j==28:
break
elif (i in[4,6,9,11])and j==31:#elif
continue
print(f'{i}月{j}日')
#部分结果为:
...
2月25日
2月26日
2月27日
3月1日
4月28日
4月29日
4月30日
5月1日
5月2日
...
3. 异常处理(就是处理异常,报错Error)
(1)捕捉错误
- try 方法(尝试)
1.
try:
print(1/0) #0不能做分母,这里会报错,但会跳过,继续执行后面的代码
2.
try:
print(1/0)
except Exception #Exception 为万能异常,错误被捕捉了,继续执行后面的代码
pass #pass表示什么也不做
3.
try:
key = input('输入一个key获取字典中的值')
dic = {'a': 1}
dic[key] # ,输入一个错误值,如'b',而列表里没有'b',这是KeyError
except Exception as e: # Exception万能异常 # as e,是把错误信息输入出来,同时一般把该错误记录到日志中
# logging.info(e) -> 日志是给程序员看
print('你输入有问题') # -》 给用户看
# 预运行(类似把代码抽离到另外一个文件中运行,这样的运行对本文件不会造成任何影响),能不用则不用
4.常用字符串内置方法
内置方法:即自带的方法(会用就行)
字符串内置方法只有字符串才能使用
如字符串 :
s = 'nick handsome'
(1)索引取值
print(s[0]) #结果是 n
(2)切片
print(s[0:6:2]) #结果:nc
(3)成员运算
print('nick' in s) #结果: True
print('nick1' in s) #结果:False
(4)for循环
for i in s: # n i c k h a
print(i) #结果:nick handsome
#每输出一个字母都要换行,这里就为了方便,写成这样
(5)len()字符串长度
print(len(s)) #结果:13
(6)replace()替换值
s = 'tank sb'
s = s.replace('sb', 'dsb') # 替换
print(s)
#结果:tank dsb
下面的方法都是字符串 .(点)出来的方法
(7)strip() :默认去掉字符串两端的空格
(8)lstrip()/rstrip() :去掉字符串的左端/右端
(9)startwith()/endwith() :以...开头/以...结尾
(10)find()/index() :获取某一元素的索引位置
(11)join() :把列表内的元素拼接出来,生成字符串
(12)split() :把字符串切割,生成列表
(13)center()/ljust()/rjust():打印更美观,居中/居左/居右
(14)isdigit()/isalpha() :是否为纯数字/是否为纯字母
(15)count() 计数
# 接下来讲的都是字符串.出来的方法
s = '**** ni ck '
print(s)
# 6. strip(): 默认去掉两端空格,可以
# print(s.strip()) # 去空格
# print(s.strip('*')) # 去*
print(s.strip('n* ')) # 去 和*和n
# 7.lstrip()/rstrip(): 左端/右端
s = '**nick**'
print(s.lstrip('*'))
print(s.rstrip('*'))
# 8.startswith()/endswith(): 以。。开头/以。。结尾
s = 'nick'
print(s.startswith('ni'))
print(s.endswith('k'))
# 9.find()/index() : 获取某一个元素的索引位置
s = 'nick'
print(s.find('a')) # 找不到返回-1
# print(s.index('a')) # 找不到报错
# 10.join() : 把列表内的元素拼接出来
print('*'.join(['a', 'b', 'c']))
# 11.split(): 切割
s = 'a*b*c'
print(s.split('*')) # 以*为切割符号,切割字符串
# 12.center/ljust/rjust : 打印更美观,居中/居左/居右
print(s.center(50, '-'))
print(s.ljust(50, '-'))
print(s.rjust(50, '-'))
# 13.isdigit()/isalpha()
s = 'a'
print(s.isdigit()) # 是否为纯数字
print(s.isalpha()) # 是否为纯字母
# 14.count(): 计数
s = 'nick nick'
print(s.count('nick'))
#打印结果:
**** ni ck
i ck
nick**
**nick
True
True
-1
a*b*c
['a', 'b', 'c']
----------------------a*b*c-----------------------
a*b*c---------------------------------------------
---------------------------------------------a*b*c
False
True
2
split() join()和jieba模块的比较
把字符串按词语切割为列表
# 2. 使用jieba模块对文件内容切割
jieba.add_word('回家的诱惑') # 让"回家的诱惑"成为一个单词
jieba.del_word('女士') #删除全部 "女士" 字符串
jieba.del_word('先生')
jieba.del_word('小马')
data_list = jieba.lcut(data) #把字符串按词语切割为列表,
data = ' '.join(data_list) #用空格把列表拼接成字符串