#实现了迭代协议的对象可以使用迭代循环,内部方法__next__()可以获取下一个元素
# #iter()判断对象是否应用迭代器功能
f = open('data', encoding='utf8')
emp = iter(f) is f
print(emp)
print(f.__next__())
print(next(f))
urls = ['baidu.com', 'qq.vip','taobao.com' ]
print(iter(urls) is urls)
#-->false
res = [url.upper() for url in urls]
res = [url for url in urls if url.endswith('com')]
print(res)
l = [1, 2, 3]
res = []
for x in l:
res.append(x**2)
print(res)
result = [x**2 for x in l]
print(result)
l = iter(l)
while True:
try:
res.append(next(l)**2)
except StopIteration:
break
print(res)
emp = {'name': 'Tom', 'age': 20, 'job': 'dev', 'salary': 8000.00}
for k,v in emp.items():
print(k, v)
print(emp.items())
#函数的使用
#定义
def read_book():
print('拿来了')
print('看书')
print('看完了')
#调用
read_book()
#带简单参数的函数
def learning(name, course, start, end):
print('{}报名:{}'.format(name,course))
print('从{}学习到{}'.format(start,end))
print('{}学习结束'.format(name))
learning('Tom', 'Python', 1, 3)
#带返回值的函数
def add_num(x, y):
result = x + y
return result
sum = add_num(3, 6)
print(sum)
def intersect(seq1, seq2):
res = []
for x in seq1:
if x in seq2:
res.append(x)
return res
s1 = 'baidu,com'
s2 = 'taobao.com'
print(intersect(s1, s2))
#函数中变量的作用域
x = 55
#
def func():
global x #全局
x=99
print(x)
print(x)--55
func()--99
print(x)--99
def func():
x = 100
def nested():
nonlocal x #非本地
x = 99
print(x)
nested()
print(x)
func()--99
#不可变类型int char
def change_num(x):
x += 10
x = 5
print(x)
change_num(x)
print(x)
#可变类型
def change_list(l):
l[0] = 99
l = ['a', 'b', 'c']
print(l)
#改变
change_list(l)
#不改变列表原始数据
change_list(l.copy())
change_list(l[:])
print(l)
Python基础语法重温第三天
最新推荐文章于 2021-06-30 23:15:04 发布