# 切片
# 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法
# -*- coding: utf-8 -*-
# def trim(s):
# if 0==len(s):
# return s
#
# while ' '==s[0]:
# s=s[1:]
# if 0==len(s):
# return s
#
# while ' '==s[-1]:
# s=s[:-1]
# if 0==len(s):
# return s
#
# return s
# 迭代
# 判断是否是可迭代 对象
# from collections import Iterable
# isinstance('abc',Iterable)
# 利用enumerate函数把list编程索引-元素对
# for i,value in enumerate(['A','B','C']):
# print(i,value)
# 练习题 请使用迭代查找一个list中最小和最大值,并返回一个tuple:
# def findMinAndMax(L):
# if len(L)==0:
# return (None,None)
# else:
# (min,max)=(L[0],L[0])
# for x in L:
# if max < x:
# max =x
# if min >x:
# min =x
# return (min,max)
# print(findMinAndMax([2,1,3,5,7]))
# 列表 生成式
# 如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错请修改列表生成式,通过添加if语句保证列表生成式能正确地执行
# lower()方法 是 转换字符串中的大写字符 为小写
# L1 = ['Hello', 'World', 18, 'Apple', None]
# # L2 = [x.lower() for x in L1 if True== isinstance(x, str)]
# L2 =[x.lower() for x in L1 if isinstance(x,str)]
# print(L2)
# 生成器
# 杨辉三角定义如下:
#
# 1
# / \
# 1 1
# / \ / \
# 1 2 1
# / \ / \ / \
# 1 3 3 1
# / \ / \ / \ / \
# 1 4 6 4 1
# / \ / \ / \ / \ / \
# 1 5 10 10 5 1
# def triangles():
# a = [1]
# while True:
# yield a
# a = [sum(i) for i in zip([0]+a, a+[0])]
# n = 0
# for t in triangles():
# print(t)
# n = n+1
# if n == 10:
# break
#
# def triangles():
# L = [1]
# while True:
# yield L
# L = [L[x] + L[x+1] for x in range(len(L) - 1)] #计算中间的 数值
# L.insert(0, 1) #开头位置插入1
# L.append(1) #列表的尾部位置插入1
# if len(L) > 10:
# break
# n = 0
# for t in triangles():
# print(t)
# n = n + 1
# if n == 10:
# break
# 个人推荐第二种方法 逻辑 比较清楚
# 迭代器
# 直接作用于for循环的数据类型有以下几种:
#
# 一类是集合数据类型,如list、tuple、dict、set、str等;
#
# 一类是generator,包括生成器和带yield的generator function。
#
# 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。
#
# 可以使用isinstance()判断一个对象是否是iterable
# from collections.abc import Iterable
# print(isinstance([], Iterable))
# 而 生成器不但可以作用于for循环,还可以被next()不断调用并且返回下一个值,直到最后抛出StopIteration错误无法继续返回下一个值
# 可以被next()函数调用并且不断返回下一个值的对象称为迭代器:iterator
# 可以使用isinstance()判断一个对象是否是iterator对象
from collections.abc import Iterator
print((isinstance((x for x in range(10)), Iterator))
自主学习不做商用 如有侵权请联系作者删除