简单的数据结构

目录

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)strip() :默认去掉字符串两端的空格

(7)lstrip()/rstrip() :去掉字符串的左端/右端

(8)startwith()/endwith() :以...开头/以...结尾

(9)find()/index() :获取某一元素的索引位置

(10)join() :把列表内的元素拼接出来,生成字符串

(11)split() :把字符串切割,生成列表

(12)center()/ljust()/rjust():打印更美观,居中/居左/居右

(13)isdigit()/isalpha() :是否为纯数字/是否为纯字母

(14)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)   #用空格把列表拼接成字符串
上一篇:day07


下一篇:44-集合的内置方法