Python day03 课堂笔记

今天主要学习了字符串的索引和切片,字符串操作,for循环,列表,元祖,join() , range() , for的循环嵌套,等知识点。其中join() , range() ,是非常重要的方法。

在开始今天的内容之前,先补充三个知识点

1.

ASCII码: 字母,数字,特殊字符:用8位(一个字节)来表示
Unicode码:16位来表示 , 两个字节 ; -> 升级32位 ,四个字节
utf - 8 : 最少用8位来表示 (英文字母), 欧洲16位2个字节,亚洲24位,3个字节
gbk : 表示英文1个字节,表示中文2个字节

2.

Python 2 在编译安装时,已于通过参数
--enable-unicode=ucs2 or
--enable-unicode=ucs4分别用于指定使用2个字节,4个字节表示一个unicode字符;
Python3 无法进行选择,if 默认使用ucs4:
    查看当前Python中表示unicode字符串时占用的时间:
        import sys
        print(sys.maxunicode)
    # 如果值是 65535 , 则表示使用ucs2标准,即:2个字节表示
    # 如果值是 1114111,则表示使用ucs4标准,即:4个字节表示

3.

 while(1)的效率高于while(True)

1.初识数据类型:

  int : bit_length() 转化2进制的最小位数

  bool : True , False

  str -> bool  bool(str) : 只要引号有东西,则为True  ,引号里如果为空,就是False

2.索引和切片:顾首不顾尾

s = 'hello ming'
s1 = s[2:4]
print(s1)
s2 = s[0:]
print(s2)
s3 = s[0:-1]
print(s3)
s4 = s[0:4:2]
print(s4)
s5 = s[-1::-2]
print(s5)

3.字符串的方法:

1.capitalize()  : 首字母大写
2.upper():  全部大写
3.lower():  全部小写
4.center(): 居中,有width参数,
5.find():   通过字符(元素)找索引下标,找不到返回-1
6.index():  通过元素找索引,找不到报错
7.swapcase():   大小写翻转
8.len():    通用方法,遍历它的元素个数,长度
9.replace(): 替换,前面是旧的,后面的是新的,它默认是全部
10.isdigit ():     判断是否由数字组成:返回的是BOOL值
11.startswith():  以开始  endswith(): 以结束
12.title(): 标题首字母大写
13. count() : 计数,某一个字母在一个单词中出现的次数
14.strip() :删除空格
   rstrip(): 删除右空格
   lstrip(): 删除左空格
* 15.split() : 以什么形式隔开
16.format(): 格式化输出,占位符是{},和%s性质一样
            1){}{}
            2){0}{1}{2}
            3){name}{age}{hobby}

  练习:

 1.

s = '132a4b5c'
#1.形成新的字符串 s1 = '123'
s1 = s[0:3:2]
s2 = s1 + '3'
print(s2)
#2.形成新的字符串 s2 = 'a4b'
s2 = s[3:6]
print(s2)
#3.形成新的字符串 s3 = '1245'
s3 = s[::2]
print(s3)
#4.形成新的字符串 s4 = '3ab'
s4 = s[1:6:2]
print(s4)
#5.形成新的字符串 s5 = 'c'
s5 = s[-1]
print(s5)
#6.形成新的字符串 s6 = 'ba3'
s6 = s[-3:0:-2]
print(s6)

 2.

#使用while 和 for 循环分别打印字符串 s = 'asdfer'中每个元素

#1 . while

s = 'asdfer'
i = 0
while i <6 :
    print(s[i])
    i+=1
print('-------')
# 2. for

for j in s:
    print(j+1)

4.for循环:

for循环:有限循环
可迭代对象:有多个元素组成的

5.列表:

  列表和C,Java中的数组相同。列表是Python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,它是以 [ ] 括起来,每个元素以逗号隔开,而且它里面可以存放各种数据类型。

  而且列表是有序的,有索引值,可切片,方便取消。

  以逗号隔开的被认为是一个整体。

#1.增加
#append()   :添加到最后

li = ['chunlai','chaojun','laozhai','baomu']

# for i in li:
#     s = input('添加的成员:')
#     li.append(s)
#     print(li)

#增加

# #添加,添加到最后的位置
# li.append('xiaozhou')
# print(li)
# #插入,按照索引的位置进行插入
# li.insert(0,'xiyangyang')
# print(li)
# #迭代添加
# li.extend('zhaomin')
# print(li)
# li.extend(['1','2','不悔妹妹'])
# print(li)

#删除

# #pop删除,有返回值,返回值就是要删除的元素
# name = li.pop()
# print(name)
# print(li)
# #pop按照索引删除元素
# li.pop(2)
# print(li)
# #remove通过元素删除
# li.remove('chaojun')
# print(li)
# #清空列表
# li.clear()
# print(li)
m = ['xiaohua','xiaomei','xiaoming']
# #删除列表
# # del li
# # print(li)
# #del的切片删除
# del m[0::2]
# print(m)

#修改

# #直接通过索引下标来进行修改
# m[0] ='chunlai'
# print(m)
# #切片修改,只采最小的元素值
# m[1:2] = '孔子'
# print(m)
# #切片修改,元素值可以有多个,不影响,也不需要一一对应
# m[1:3] = ['小徐','小样','小花']
# print(m)

#查找

#1. for
#2. 切片

6.列表的嵌套:

#列表的嵌套
# li = ['taibai','wusir','alex','ritian',['ming','hua','egon',89],23]
# print(li[1][2])
# print(li[0].capitalize())
# print(li[4][0][1])
# print('-------------')
# name = li[1] = 'chunlai'
# li[1] = name
# print(li)

7.元祖:

  元祖被称为只读列表,即数据可以被查询,但不能被修改。所以,字符串的切片操作同样适用于元祖。

  eg.  (1,2,3) ,('a','b','c')

  '儿子不能改,孙子可能改'

  eg.

  tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')

  #元祖中的元素不能更改,但元祖内列表中的元素却是可以修改的。

将字符串转成列表:split()

将列表转成字符串:join()

8.join(): (可迭代对象) ,join最后返回的是字符串
 eg.

  s = ' alex '

  s1 = '_'.join(s)

  print(s1)  #_a_l_e_x

9.range() : 数字按照数字排列的列表 ,(首,尾,步长),区间仍是顾头不顾尾

 eg.

  for i in range( 0 ,10 ):

    print( i )

昨日作业:

1.

在这里我实现了加减乘除,可作为简易的计算器。

实现一个整数加法计算器:
如:content = input('请输入内容:')
如  用户输入: 5+9 或5+ 95 + 9 ,然后进行分割再计算
# int() 会自动删掉空格
eg.

sum = 0
num = 1
content = input('请输入内容:')
if content.find('+') != -1:
    con1 = content.split('+')
    leng = len(con1)
    i = 0
    while i < leng:
     sum += int(con1[i])
     i+=1
elif content.find('-') != -1:
    con2 = content.split('-')
    leng1 = len(con2)
    i = 1
    sum = int(con2[0])
    while i < leng1:
        sum -= int(con2[i])
        i+=1
elif content.find('*') != -1:
    con3 = content.split('*')
    leng3 = len(con3)
    i = 0
    while i < leng3:
        num = num *  int(con3[i])
        i+=1
elif content.find('/') != -1:
    con4 = content.split('/')
    leng4 = len(con4)
    i = 1
    num = con4[0]
    while i < leng4:
        num = int(num) / int(con4[i])
        i+=1
if content.find('+') != -1 or content.find('-') != -1 :
    print(sum)
elif content.find('*') != -1 or content.find('/') != -1 :
    print(num)

2.

计算用户输入的内容中有几个整数
如: content = input('请输入内容:')
如 fhdal1234slfh98769fjdla

m = 0
content = input('请输入内容:')
for i in content :
    if i.isdigit() == True :
        m +=1
print(m)

在今日博客的最后,我分享一道今天自己的错题:

用for嵌套循环来实习打印:

li = [1,2,3,5,'alex',[2,4,5,6,'taibai'],'ming']
 ps.
  for i in range(len(li)):
   if type(li[i]) == list:
   for j in li[i]:
   print(j)
   else:
  print(li[i])
 

猜你喜欢

转载自www.cnblogs.com/if-it-is-possible/p/11414872.html