d9
# 整體進度
# python基礎 ——38天 2個月
# 數據庫 —— 存儲數據和信息用的,本質上和文件沒有區別 1-2周
# —— 增刪改查更方便了
# 前端 —— 2周
# 框架 —— django 2個月
# linux基礎 2周
# 6個月畢業
# python 基礎
# 基礎數據類型
# 流程控制 —— 條件判斷和各種循環
# 為什么要有文件處理(# 文件里存儲的是用戶名和密碼)
# 內存 —— 硬盤
# 函數 —— 兩周
# 面向對象和模塊 —— 兩周
# 網絡編程 —— 一周
# 并發編程 —— 一周
# 紀律
# 早默寫 —— 堅持
# 下午的時間安排
# 2:30 上自習
# 前半個小時 回憶上課講了什么
# 3:00 看視頻 —— 4:30
# 多動手 敲代碼
# 先敲課上的內容 —— 5:00
# 看一遍作業 —— 5:30之前
# 6:30——8:00 寫作業
# 8:00 —— 8:30 安排討論
# 文件處理
# 打開文件
#open('路徑','打開方式','指定編碼方式')
# 打開方式 r w a r+ w+ a+ b
#r+ 打開文件直接寫 和讀完再寫
# 編碼方式 —— utf-8
# 操作文件
# 讀
# read 一次性讀
# readlines 一次性讀
# readline 一行一行讀
#不知道在哪兒結束
#視頻 圖片 rb bytes 按照字節讀
# for循環 —— 最好!!!
# 寫
# write
# 光標 —— 文件指針
#seek _ 指定光標移動到某個位置
#tell _ 獲取光標當前的位置
#truncate _ 截取文件
# 關閉文件
#close
# 修改文件
with open('小護士班主任',encoding='utf-8') as f,open('小護士班主任.bak','w',encoding='utf-8') as f2:
for line in f:
if '星兒' in line: #班主任:星兒
line = line.replace('星兒','啊嬌')
#寫文件
f2.write(line) #小護士:金老板
import os
os.remove('小護士班主任') #刪除文件
os.rename('小護士班主任.bak','小護士班主任') #重命名文件
#len
# s = '金老板小護士'
# len(s)
# def my_len(): #自定義函數
# i = 0
# for k in s:
# i += 1
# print(i)
#
# length = my_len()
# print(length)
# 函數
# 定義了之后,可以在任何需要它的地方調用
# 沒有返回長度,只是單純的打印
#返回的重要性
#a,b
#len(a) #內置函數
#len(b)
# def my_len(): #自定義函數
# i = 0
# for k in s:
# i += 1
# return i #返回值
#
# length = my_len()
# print(length)
#len()
#1.不能變,只能計算s字符串的長度
#2.只是輸出了結果
#返回值
#返回值的3種情況
# 沒有返回值 —— 返回None
# 不寫return
# 只寫return:結束一個函數的繼續
# return None —— 不常用
# 返回1個值
# 可以返回任何數據類型
# 只要返回就可以接收到
# 如果在一個程序中有多個return,那么只執行第一個
# 返回多個值
# 用多個變量接收:有多少返回值就用多少變量接收
# 用一個變量接收: 得到的是一個元組
# def func():
# l = ['金老板','二哥']
# for i in l:
# print(i)
# if i=='金老板':
# return None
# print('='*10)
# ret = func()
# print(ret)
# def func():
# return {'k':'v'}
# print(func())
# def func2():
# return 1,2,3 #return 1,2,3
#
# r= func2()
# print(r)
# def my_len(s): #自定義函數只需要0個參數,接收參數,形式參數,形參
# i = 0
# for k in s:
# i += 1
# return i #返回值
#
# ret = my_len('金老板小護士') #傳遞參數:傳參,實際參數,實參
# ret = my_len([1,2,3,4,5]) #傳遞參數:傳參
# print(ret)
#什么叫參數?
#參數的語法
#形參和實參的概念
# def f2(l1):
# f1(l1)
# for i in l1:
# print(i)
#
# def f1(l1):
# for i in l1:
# print(i)
#
# f2([1,2,3,4])
#參數
#沒有參數
#定義函數和調用函數時括號里都不寫內容
#有一個參數
#傳什么就是什么
#有多個參數
#位置參數
# def my_sum(a,b):
# print(a,b)
# res = a+b #result
# return res
#
# ret = my_sum(1,2)
# print(ret)
#站在實參的角度上:
#按照位置傳參
#按照關鍵字傳參
#混著用可以:但是 必須先按照位置傳參,再按照關鍵字傳參數
# 不能給同一個變量傳多個值
#站在形參的角度上
#位置參數:必須傳,且有幾個參數就傳幾個值
#默認參數: 可以不傳,如果不傳就是用默認的參數,如果傳了就用傳的
# def classmate(name,sex='男'):
# print('%s : %s'%(name,sex))
#
# classmate('二哥')
# classmate('小孟')
# classmate('大猛')
# classmate('朗哥','女')
#只有調用函數的時候
#按照位置傳 : 直接寫參數的值
#按照關鍵字: 關鍵字 = 值
#定義函數的時候:
#位置參數 : 直接定義參數
#默認參數,關鍵字參數 :參數名 = '默認的值'
#動態參數 : 可以接受任意多個參數
#參數名之前加*,習慣參數名args,
#參數名之前加**,習慣參數名kwargs
#順序:位置參數,*args,默認參數,**kwargs
# def classmate(name,sex):
# print('%s : %s'%(name,sex))
#
# classmate('二哥','男')
# classmate(sex='男',name = '二哥')
# def classmate(name,sex='男'):
# print('%s : %s'%(name,sex))
#
# classmate('二哥')
# classmate('朗哥',sex= '女')
# def sum(*args):
# n = 0
# for i in args:
# n+=i
# return n
#
# print(sum(1,2))
# print(sum(1,2,3))
# print(sum(1,2,3,4))
# def func(**kwargs):
# print(kwargs)
#
# func(a = 1,b = 2,c =3)
# func(a = 1,b = 2)
# func(a = 1)
# 動態參數有兩種:可以接受任意個參數
#*args : 接收的是按照位置傳參的值,組織成一個元組
#**kwargs: 接受的是按照關鍵字傳參的值,組織成一個字典
#args必須在kwargs之前
# def func(*args,default = 1,**kwargs):
# print(args,kwargs)
#
# func(1,2,3,4,5,default=2,a = 'aaaa',b = 'bbbb',)
#動態參數的另一種傳參方式
# def func(*args):#站在形參的角度上,給變量加上*,就是組合所有傳來的值。
# print(args)
#
# func(1,2,3,4,5)
# l = [1,2,3,4,5]
# func(*l) #站在實參的角度上,給一個序列加上*,就是將這個序列按照順序打散
# def func(**kwargs):
# print(kwargs)
#
# func(a=1,b=2)
# d = {'a':1,'b':2} #定義一個字典d
# func(**d)
#函數的注釋
# def func():
# '''
# 這個函數實現了什么功能
# 參數1:
# 參數2:
# :return: 是字符串或者列表的長度
# '''
# pass
# 默認參數的陷阱
# 文件的修改
# 函數
#1.函數的定義 def
#2.函數的調用
#3.函數的返回值 return
#4.函數的參數
#形參:
# 位置參數 : 必須傳
# *args :可以接收任意多個位置參數
# 默認參數 : 可以不傳
# **kwargs : 可以接收多個關鍵字參數
#實參:按照位置傳參,按照關鍵字傳參
#函數
#內置函數
#自定義函數 !!!!!
# li = ['alex','wusir','rain']
# s1 = '*'.join(li)
# print(s1)
#1-2+3-4+5.......+99
sum = 0
for i in range(1,100):
if i % 2 == 0:
sum = sum - i
else:
sum += i
#12,使用range打印100,99,98,....1,0(2分)
# for i in range(100,-1,-1):
# print(i)
# count = 0
# content = input('>>>')
# for i in range(len(content)):
# if i % 2 == 1 and content[i].isdigit():
# count += 1
# print(count)
'''
16,實現一個整數加法計算器:(6分)
如:content = input(‘請輸入內容:’) # 如用戶輸入:5+8+7....(最少輸入兩個數相加),然后進行分割再進行計算,將最后的計算結果添加到此字典中(替換None):
dic={‘最終計算結果’:None}。
'''
# content = input('請輸入內容:') # 5+8+7。。。
# content_list = content.split('+')
# print(content_list)
# sum = 0
# for i in content_list:
# sum = sum + int(i)
# print(sum)
# i = '7 '
# print(int(i.strip()))
# li = [11,22,33,44,55,77,88,99,90]
# result = {'key1':[],'key2':[]}
# for row in li:
# li = [11,22,33,44,55,77,88,99,90]
# result = {}
# for row in li:
# if row > 66:
# if 'key1' not in result:
# result['key1']=[]
# result['key1'].append(row)
# else:
# if 'key2' not in result:
# result['key2']=[] # result = {'key2':[]}
# result['key2'].append(row)
# print(result)
# li = [11,22,33,44,55,77,88,99,90]
# result = {}
# for row in li:
# result.setdefault('key1',[])
# result.setdefault('key2',[])
# if row > 66:
# result['key1'].append(row)
# else:
# result['key2'].append(row)
user_list = [
{'username':'barry','password':'1234'},
{'username':'alex','password':'asdf'},
]
board = ['張三','李小四','王二麻子']
while 1:
username = input('用戶名:')
if username.upper() == 'Q':break
password = input('密碼:')
for i in board:
if i in username:
username = username.replace(i,'*'*len(i))
user_list.append({'username':username,'password':password})
print({'username':username,'password':password})
print(user_list)
# python基礎 ——38天 2個月
# 數據庫 —— 存儲數據和信息用的,本質上和文件沒有區別 1-2周
# —— 增刪改查更方便了
# 前端 —— 2周
# 框架 —— django 2個月
# linux基礎 2周
# 6個月畢業
# python 基礎
# 基礎數據類型
# 流程控制 —— 條件判斷和各種循環
# 為什么要有文件處理(# 文件里存儲的是用戶名和密碼)
# 內存 —— 硬盤
# 函數 —— 兩周
# 面向對象和模塊 —— 兩周
# 網絡編程 —— 一周
# 并發編程 —— 一周
# 紀律
# 早默寫 —— 堅持
# 下午的時間安排
# 2:30 上自習
# 前半個小時 回憶上課講了什么
# 3:00 看視頻 —— 4:30
# 多動手 敲代碼
# 先敲課上的內容 —— 5:00
# 看一遍作業 —— 5:30之前
# 6:30——8:00 寫作業
# 8:00 —— 8:30 安排討論
# 文件處理
# 打開文件
#open('路徑','打開方式','指定編碼方式')
# 打開方式 r w a r+ w+ a+ b
#r+ 打開文件直接寫 和讀完再寫
# 編碼方式 —— utf-8
# 操作文件
# 讀
# read 一次性讀
# readlines 一次性讀
# readline 一行一行讀
#不知道在哪兒結束
#視頻 圖片 rb bytes 按照字節讀
# for循環 —— 最好!!!
# 寫
# write
# 光標 —— 文件指針
#seek _ 指定光標移動到某個位置
#tell _ 獲取光標當前的位置
#truncate _ 截取文件
# 關閉文件
#close
# 修改文件
with open('小護士班主任',encoding='utf-8') as f,open('小護士班主任.bak','w',encoding='utf-8') as f2:
for line in f:
if '星兒' in line: #班主任:星兒
line = line.replace('星兒','啊嬌')
#寫文件
f2.write(line) #小護士:金老板
import os
os.remove('小護士班主任') #刪除文件
os.rename('小護士班主任.bak','小護士班主任') #重命名文件
#len
# s = '金老板小護士'
# len(s)
# def my_len(): #自定義函數
# i = 0
# for k in s:
# i += 1
# print(i)
#
# length = my_len()
# print(length)
# 函數
# 定義了之后,可以在任何需要它的地方調用
# 沒有返回長度,只是單純的打印
#返回的重要性
#a,b
#len(a) #內置函數
#len(b)
# def my_len(): #自定義函數
# i = 0
# for k in s:
# i += 1
# return i #返回值
#
# length = my_len()
# print(length)
#len()
#1.不能變,只能計算s字符串的長度
#2.只是輸出了結果
#返回值
#返回值的3種情況
# 沒有返回值 —— 返回None
# 不寫return
# 只寫return:結束一個函數的繼續
# return None —— 不常用
# 返回1個值
# 可以返回任何數據類型
# 只要返回就可以接收到
# 如果在一個程序中有多個return,那么只執行第一個
# 返回多個值
# 用多個變量接收:有多少返回值就用多少變量接收
# 用一個變量接收: 得到的是一個元組
# def func():
# l = ['金老板','二哥']
# for i in l:
# print(i)
# if i=='金老板':
# return None
# print('='*10)
# ret = func()
# print(ret)
# def func():
# return {'k':'v'}
# print(func())
# def func2():
# return 1,2,3 #return 1,2,3
#
# r= func2()
# print(r)
# def my_len(s): #自定義函數只需要0個參數,接收參數,形式參數,形參
# i = 0
# for k in s:
# i += 1
# return i #返回值
#
# ret = my_len('金老板小護士') #傳遞參數:傳參,實際參數,實參
# ret = my_len([1,2,3,4,5]) #傳遞參數:傳參
# print(ret)
#什么叫參數?
#參數的語法
#形參和實參的概念
# def f2(l1):
# f1(l1)
# for i in l1:
# print(i)
#
# def f1(l1):
# for i in l1:
# print(i)
#
# f2([1,2,3,4])
#參數
#沒有參數
#定義函數和調用函數時括號里都不寫內容
#有一個參數
#傳什么就是什么
#有多個參數
#位置參數
# def my_sum(a,b):
# print(a,b)
# res = a+b #result
# return res
#
# ret = my_sum(1,2)
# print(ret)
#站在實參的角度上:
#按照位置傳參
#按照關鍵字傳參
#混著用可以:但是 必須先按照位置傳參,再按照關鍵字傳參數
# 不能給同一個變量傳多個值
#站在形參的角度上
#位置參數:必須傳,且有幾個參數就傳幾個值
#默認參數: 可以不傳,如果不傳就是用默認的參數,如果傳了就用傳的
# def classmate(name,sex='男'):
# print('%s : %s'%(name,sex))
#
# classmate('二哥')
# classmate('小孟')
# classmate('大猛')
# classmate('朗哥','女')
#只有調用函數的時候
#按照位置傳 : 直接寫參數的值
#按照關鍵字: 關鍵字 = 值
#定義函數的時候:
#位置參數 : 直接定義參數
#默認參數,關鍵字參數 :參數名 = '默認的值'
#動態參數 : 可以接受任意多個參數
#參數名之前加*,習慣參數名args,
#參數名之前加**,習慣參數名kwargs
#順序:位置參數,*args,默認參數,**kwargs
# def classmate(name,sex):
# print('%s : %s'%(name,sex))
#
# classmate('二哥','男')
# classmate(sex='男',name = '二哥')
# def classmate(name,sex='男'):
# print('%s : %s'%(name,sex))
#
# classmate('二哥')
# classmate('朗哥',sex= '女')
# def sum(*args):
# n = 0
# for i in args:
# n+=i
# return n
#
# print(sum(1,2))
# print(sum(1,2,3))
# print(sum(1,2,3,4))
# def func(**kwargs):
# print(kwargs)
#
# func(a = 1,b = 2,c =3)
# func(a = 1,b = 2)
# func(a = 1)
# 動態參數有兩種:可以接受任意個參數
#*args : 接收的是按照位置傳參的值,組織成一個元組
#**kwargs: 接受的是按照關鍵字傳參的值,組織成一個字典
#args必須在kwargs之前
# def func(*args,default = 1,**kwargs):
# print(args,kwargs)
#
# func(1,2,3,4,5,default=2,a = 'aaaa',b = 'bbbb',)
#動態參數的另一種傳參方式
# def func(*args):#站在形參的角度上,給變量加上*,就是組合所有傳來的值。
# print(args)
#
# func(1,2,3,4,5)
# l = [1,2,3,4,5]
# func(*l) #站在實參的角度上,給一個序列加上*,就是將這個序列按照順序打散
# def func(**kwargs):
# print(kwargs)
#
# func(a=1,b=2)
# d = {'a':1,'b':2} #定義一個字典d
# func(**d)
#函數的注釋
# def func():
# '''
# 這個函數實現了什么功能
# 參數1:
# 參數2:
# :return: 是字符串或者列表的長度
# '''
# pass
# 默認參數的陷阱
# 文件的修改
# 函數
#1.函數的定義 def
#2.函數的調用
#3.函數的返回值 return
#4.函數的參數
#形參:
# 位置參數 : 必須傳
# *args :可以接收任意多個位置參數
# 默認參數 : 可以不傳
# **kwargs : 可以接收多個關鍵字參數
#實參:按照位置傳參,按照關鍵字傳參
#函數
#內置函數
#自定義函數 !!!!!
# li = ['alex','wusir','rain']
# s1 = '*'.join(li)
# print(s1)
#1-2+3-4+5.......+99
sum = 0
for i in range(1,100):
if i % 2 == 0:
sum = sum - i
else:
sum += i
#12,使用range打印100,99,98,....1,0(2分)
# for i in range(100,-1,-1):
# print(i)
# count = 0
# content = input('>>>')
# for i in range(len(content)):
# if i % 2 == 1 and content[i].isdigit():
# count += 1
# print(count)
'''
16,實現一個整數加法計算器:(6分)
如:content = input(‘請輸入內容:’) # 如用戶輸入:5+8+7....(最少輸入兩個數相加),然后進行分割再進行計算,將最后的計算結果添加到此字典中(替換None):
dic={‘最終計算結果’:None}。
'''
# content = input('請輸入內容:') # 5+8+7。。。
# content_list = content.split('+')
# print(content_list)
# sum = 0
# for i in content_list:
# sum = sum + int(i)
# print(sum)
# i = '7 '
# print(int(i.strip()))
# li = [11,22,33,44,55,77,88,99,90]
# result = {'key1':[],'key2':[]}
# for row in li:
# li = [11,22,33,44,55,77,88,99,90]
# result = {}
# for row in li:
# if row > 66:
# if 'key1' not in result:
# result['key1']=[]
# result['key1'].append(row)
# else:
# if 'key2' not in result:
# result['key2']=[] # result = {'key2':[]}
# result['key2'].append(row)
# print(result)
# li = [11,22,33,44,55,77,88,99,90]
# result = {}
# for row in li:
# result.setdefault('key1',[])
# result.setdefault('key2',[])
# if row > 66:
# result['key1'].append(row)
# else:
# result['key2'].append(row)
user_list = [
{'username':'barry','password':'1234'},
{'username':'alex','password':'asdf'},
]
board = ['張三','李小四','王二麻子']
while 1:
username = input('用戶名:')
if username.upper() == 'Q':break
password = input('密碼:')
for i in board:
if i in username:
username = username.replace(i,'*'*len(i))
user_list.append({'username':username,'password':password})
print({'username':username,'password':password})
print(user_list)
轉載于:https://www.cnblogs.com/aladam/p/10067787.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: 服务端开发学习路径图,心疼小哥哥们
- 下一篇: java B2B2C电子商务平台分析之十