数据类型补充

1 . 字符串

  .join方法可以在一段字符串每个元素后加一个指定的元素

如果一个列表中有数字装换会出错要用下面这个方法

print(" ".join('%s' %id for id in list1))

s = 'alexeweuesir\n'
s1 = "_".join(s)#把"_"元素加进去
s2 = ''.join(s)#添加个空元素 相当于不变
print(s1+s2)

结果:

 

补充  怎么输出字符串Let's go

print("let's,go)    #第一种
print("let\'s,go")#第二种

结果:

 

 

2 . for else使用 :  for else 和while else基本相同,当执行完以后, 并且不被break打断后走else.

s = 'alexeweuesir'
for i in s:
    if i == 'e':#判断i是否取到"e"
        continue #跳过循环,开始下一次循环
    print(i)
else:             #当for循环都执行完以后,开始执行else,但是如果循环被break打断就不执行else
    print(666)

结果:

3 . 字符串练习题

实现一个整数加法计算器:实现5  +9 或  5  +  9    或 5  +9  的输出

content = input("请输入内容:")
sum = 0
content = content.split("+")  #以"+"为切割点,把str分为list
for i in content:                      #遍历list中元素
    sum = sum + int(i)            #将元素类型改为整数int,并累加
print(sum)

结果:

计算用户输入的内容中有几个整数。如输入safsah66afa5中有几个数字

content=input("请输入:")
count =0
for i in content:    #遍历content中元素
    if i.isdigit():        #判断元素是否为数字
        count+=1        
print(count)

结果:

 4. 列表的增删改查

  增.append方法 是在列表最后添加元素的,元素可以为任何类型.

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
#增 append
l1.append('小黑')        #添加字符串
l1.append([1,2,3])     #添加个列表
print(l1)

结果:

 

  .append操作没有返回值  输出None

 

a = [0,1]
b="q"
c = a.append(b)
print(c)

结果:

 

 

 小练习  在列表中添加元素,遇到"Q"或"q"退出,最后打印列表

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
while True:
    username = input('>>>/Q或q退出')    # 用户交互
    if username.upper() == 'Q':break        #判断跳出循环条件
    l1.append(username)                           #将新元素添加到列表
print(l1)

结果:

  插入 .insert  通过索引来添加元素,这个位置是可以自己决定的.没有返回值

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
#insert 插入
l1.insert(2,'egon')   #在索引为2的位置添加个元素
print(l1)

结果:

 

   expend  迭代的添加,把字符串或列表拆开添加,列表中只有一个元素正常添加,只能加在最后面,只能加一个元素,没有返回值

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
# extend
l1.extend('太白金星')           #添加元素
print(l1.extend([2,3,4]))      #添加数据 并输出返回值
print(l1)

结果 :

  删除 

 .pop删除  通过索引删除元素, 默认删除最后一个元素,并且有返回值.

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
#删除pop
l1.pop() #默认删除最后一个
ret = l1.pop(4)  #删除索引为4的数据
print(ret)  # 有返回值
print(l1)

 结果:

  .remove删除,按照元素删除,没有返回值.

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
# remove 按照元素去删除
ret = l1.remove('alex')
print(ret)
print(l1)

结果:

清空列表 .clear  但是列表还是存在的,

 l1 = ['alex',True,'wusir','ritian','taibai',3,2]
#clear  清空列表
l1.clear()
print(l1)

结果:

删除列表.del方法,列表被彻底删除.还可以用索引和切片删除.

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
# del  功能1 删除列表
del l1
print(l1)

结果:

 

l1 = ['alex',True,'wusir',3,2,4,5,'ritian','taibai',3,2]
del l1[0]   #删除第一个元素
print(l1)
del l1[0:3]  #在第一次基础上删除索引为0到2的元素
print(l1)
del l1[1::2]  #在第二次基础上,从索引为1的元素到最后按步长为2删除
print(l1)

.del  索引,切片删除

 

  改 按照索引和切片去改:单个索引相当于取到索引元素直接赋予新值, 切片时字典添加的是键值,列表加的是元素,字符串和元祖则是迭代的往里添加

l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]
# #改
# 按照索引去改
l1[0] = '男神'                       #用"男神"替换索引为0的元素
print(l1)
# 按照切片去改
l1[0:2] = ['屌丝','alex']           #列表添加元素
print(l1)
l1[0:2] = '化工哥,树脂'               #字符串遍历添加
print(l1)
l1[0:2] = ('化工哥,树脂')             #元祖遍历添加
print(l1)
l1[0:2] = {"化工哥":"树脂","guu":82}  #字典添加键值,并且无序
print(l1)

结果:

  查 用索引查 和用for循环查

l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]
# 查 按切片,按索引去查
print(l1[0])     #输出索引为0的数据
print(l1[0:3])   #输出索引在0到2的数据
l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]
for i in l1: # for 循环查print(i)

 结果:

    5.  长度 和 查找数据出现次数   补充列表中True也表示1

l1= [1,3,6,8,7,4,True,9,10]
# len 长度  数据个数
print(len(l1))
# count 出现次数
ret = l1.count(True)
print(ret)

结果:

  6.  通过元素找索引,找不到会报错

l1= [1,3,6,8,7,4,True,9,10]
# index 通过元素找索引
print(l1.index(8))  #找"8"这个元素的索引

print(l1.index(0))

结果:

   7. 如果列表中数据是纯数字的话还可以进行排序,sort 从小到大  ,sort(reverse) 从大到小

l1= [1,3,6,6,8,7,4,0,9,10]
# sort 从小到大
l1.sort()
print(l1)
#sort(reverse)  从大到小
l1.sort(reverse=True)
print(l1)

结果:

   8. 列表内元素反转,

l2=["a",1,5,"p"]
#倒叙
l2.reverse()
 print(l2)

结果:

  9.  列表的嵌套 能实现增删改查

l1 = ['小新','egon','wusir',[99,'tiabai','ritian',[1,2,3]],2]
a = l1[1].capitalize()
l1[1] = a
l1[1] = l1[1].capitalize()
print(l1)

结果:

查找数据

l1 = ['小新','egon','wusir',[99,'tiabai','ritian',[1,2,3]],2]
print(l1[0])
print(l1[3])

结果:

将一个元素字母全变大写

l1 = ['小新','egon','wusir',[99,'tiabai','ritian',[1,2,3]],2]
l = l1[3]
s = l[1].upper()
l1[3][1] = s
l1[3][1] = l1[3][1].upper()
print(l1)

结果:

 

   10.  元祖  元祖的索引查找和for循环   元祖内的数据是不可更改的,但是嵌套列表或字典时,列表内或字典里的数据能改变

tu = (1,2,'wusir','taibai',[2,3,4,],True)
for i in tu:
    print(i)
print(tu[2:])

结果:

  11. range当做:范围列表[],列表中的元素是数字,且可控的有效数字范围 一般与for循环连用

从一到十取数据也有顾首不顾尾原则

for i in range(1,10):  #[1,2,3,4...9]  顾首不顾尾
  print(i)

结果:

for i in range(1,10,2):  # [1,3,5,7,9]
    print(i)

结果:

 

 倒序输出数字

for l in range(3,-2,-1):
    print(l)

结果:

应用  依次输出例表中元素 如果元素内有列表,把子列表中元素也遍历输出

 l1 = [1,2,3,'alex',[2,3,'wusir'],7] 
  for i in l1:

  if type(i) == list:

    for j in i:

      print(j)

  else:

   print(i)

结果:

   12. Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。

# 输出 Python 的每个字母
for letter in 'Python':
   if letter == 'h':
      pass
      print '这是 pass 块'
   print '当前字母 :', letter

print "Good bye!"

结果:

 

  

posted @ 2018-01-24 15:47  wzqwer  阅读(311)  评论(0编辑  收藏  举报