python自學 第三週

2021-09-26 01:35:28 字數 3371 閱讀 2924

# coding=utf-8

from functools import reduce

#處理序列中的每個元素,得到的結果是乙個「列表」(迭代器)。元素個數與位置和原來的一樣

#map()

# print(list(filter(lambda p:p['age']<=18,)))

# p =

## print(list(zip(*p)))

s=slice(0,5,2)

l = [3,5,4,2]

print(l[s])

# coding=utf-8

# 檔案操作

# f = open('test.txt','w')

# f.write("123456")

# f.close()

# f = open('test.txt','r+')

# f.write("123456")

# f.close()

f = open('檔案的其他操作方法.py','r', encoding='utf-8')

for i in f:

print(i)

for i in f:

offs = -10

while true:

f.seek(offs, 2)

data=f.readlines()

if len(data) > 1:

print("最後一行%" %(data[-1].encode('utf-8')))

break

offs *=2

coding=utf-8

# f = open('test.txt', 'rb',encoding='utf-8') # b的方式不能指定編碼

# f = open('test.txt', 'rb') # b的方式不能指定編碼

# data = f.read()

# # 字串---encode----->bytes

# # bytes--->decode----->字串

# print(data)

# print(data.decode('utf-8'))

# f.close()

f = open('test01.txt', 'wb')

f.write(bytes('1111\n', encoding='utf-8'))

f.write('養護'.encode('utf-8'))

f = open('test01.txt', 'ab')

f.write(bytes('1111\n', encoding='utf-8'))

f.write('養護'.encode('utf-8'))

f = open('test.txt','rb')

# f.read()

# f.close()

# f.flush()

# f.encoding

# f.tell()

# f.seek()

# f.readlines()

# f.truncate() # 擷取

f.seek(-5,2)

data = f.read()

print(data)

print()

# coding=utf-8

"""只要遵循迭代協議,那就是可迭代物件

迭代器是不可逆的,每一步都與上一步有關係

for迴圈本質是呼叫__iter__()在呼叫__next__()方法

"""l = ['die', 'erzu', 'sunzi', 'chongsunzi']

iter_l = l.__iter__()

# print(iter_l.__next__())

# print(iter_l.__next__())

# print(iter_l.__next__())

# print(iter_l.__next__())

# print(iter_l.__next__())

print(next(iter_l)) # next()---->iter_l.__next__() 一樣的

# 生成器可以理解為一種自動實現可迭代的型別

# 生成器函式:使用yield語句而不是return(課yield返回多次)

# 生成器表示式

def test():

yield 1

yield 2

yield 3

g = test()

print(g.__next__())

print(g.__next__())

# 三元表示式

name = 'alex'

res = 'sb' if name == ' alex' else 'shuage'

print(res)

# 列表解析 不足:會佔記憶體

egg_list=

for i in range(10):

print(egg_list)

# 列表解析

l = ['雞蛋{}'.format(i) for i in range(10)] # 可以兩元

print(l)

l2 = ['雞蛋{}'.format(i) for i in range(10) if i >5]

print(l2)

# l = ['雞蛋{}'.format(i) for i in range(10)if i >5 else i ] # 沒有四元

laomuji = ('雞蛋{}'.format(i) for i in range(10)) # 生成器表示式,省記憶體

print(laomuji)

print(laomuji.__next__())

print(next(laomuji))

print(sum( x **2 for x in range (10)))

# coding=utf-8

import time

'''生成器的yield相當於程式執行在**就會停下,下一次接著繼續,佔記憶體教小

'''def test():

print("開始!")

yield 1

time.sleep(2)

yield 2

time.sleep(2)

yield 3

res = test()

print(res)

print(res.__next__())

print(res.__next__())

print(res.__next__())

Python 第三週作業

1.完美立方 程式設計題 n int input n範圍內的立方數 list cube 0 用於儲存立方數的列表 for i in range 1,n 1 for a in range 6,n 1 for b in range 2,a 1 if list cube a list cube b lis...

C 自學之旅 第三週 資料

培訓第三週 程式設計練習 程式設計練習1 linq查詢練習 現在已知三個資料來源 在練習時可用手動建立填充資料的 list來代表,實際專案中可能來自於dao service a.部門 deptno dname loc10 accounting new york 20research dallas 3...

python課程第三週小結 python週報第三週

1.set 集合 1.set 方法解析 1.定義乙個set s1 caesary set1 set s1 print set1 l1 1,2,3,4 set2 set l1 print set2 t1 1,1,1,2,3 set3 set t1 print set3 執行結果如下 總結 set集合有...