日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

二、python基础(列表、元组、字符串、集合、字典、文件操作,函数基本语法及特性)...

發布時間:2025/5/22 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二、python基础(列表、元组、字符串、集合、字典、文件操作,函数基本语法及特性)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節內容

  • 列表、元組操作
  • 字符串、列表、字典、集合操作
  • 文件操作
  • 函數基本語法及特性
  • 一、列表、元組操作

    • 列表是我們最常用的數據類型之一,通過列表可以對數據實現最方便的存儲、修改等操作;
    • 列表操作:切片:取多個元素、追加、插入、修改、刪除、擴展、拷貝、統計、排序&翻轉、獲取下標。
    • 元組其實跟列表差不多,也是存一組數,只不是它一旦創建,便不能再修改,所以又叫只讀列表。

    ?

    二、 字符串、列表、字典、集合

    字符串:a='123'

    列表:b=['1','2','3']

    字典:c={'1':'abc','2':'def'}

    集合:d=set(a)

    三、文件操作

    對文件操作流程:

  • 打開文件,得到文件句柄并賦值給一個變量;
  • 通過句柄對文件進行操作;
  • 關閉文件 。
  • ?

    打開文件的模式有:

    • r,只讀模式(默認)。
    • w,只寫模式【不可讀,不存在則創建,存在則刪除內容】
    • a,追加模式【可讀,不存在則創建,存在則只追加內容】

    "+" 表示可以同時讀寫某個文件

    • r+,可讀寫文件。【可讀、可寫、可追加】
    • w+,寫和讀
    • a+,同a

    "U"表示在讀取時,可以將 \r \n \r\n自動轉換成 \n (與 r 或 r+ 模式同使用,將windows文件轉換成linux文件的過程中使用)

    • rU
    • r+U

    "b"表示處理二進制文件(如:FTP發送上傳ISO鏡像文件,linux可忽略,windows處理二進制文件時需標注)

    • rb
    • wb
    • ab
    方式一: f=open("yesterday2","w+",encoding="utf-8") f.write("------add-----------\n") f.write("------df-----------\n") f.write("------dfasfasdf---------\n") print(f.tell())  #顯示文件中光標位置 print(f.seek(0))  #將文件光標位置設置為文件開頭 print(f.readline())  #讀取文件的一行內容 f.write("------czk-----------") #在文件末尾寫入內容 f.close()  #關閉文件
    方式二:
    with open('yesterday2','w+',enconding='utf-8') as f:
      f.write('.......')

    四、函數基本語法及特性

    函數是什么?

    函數一詞來源于數學,但編程中的「函數」概念,與數學中的函數是有很大不同的,編程中的函數在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子過程或子程序),在Pascal中叫做procedure(過程)和function,在C中只有function,在Java里面叫做method。

    定義: 函數是指將一組語句的集合通過一個名字(函數名)封裝起來,要想執行這個函數,只需調用其函數名即可

    特性:

  • 減少重復代碼
  • 使程序變的可擴展
  • 使程序變得易維護
  • 函數參數與局部變量  

    形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元,因此,形參只在函數內部有效,函數調用結束返回主調用函數后則不能再使用該形參變量;

    實參可以是常量、變量、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參,因此應預先用賦值,輸入等辦法使參數獲得確定值。

    示例展示:

    # Author:daemon chai old_index = -1 new_dict={} other_list=[] #將配置文件讀取出來,需要修改的信息存儲在字典里面 with open("haproxy","r",encoding="utf-8") as f :for index,line in enumerate(f) :#存儲配置文件中節點的bakendif line.strip().startswith("bakend") :old_index = index + 1user_name=line.strip().split()[1].split('.')[1]new_dict[user_name]={}new_dict[user_name]["bakend"]=line.strip().split()[1]name=line.strip().split()[1]# print(new_list[user_name])#存儲節點信息的recordelif old_index == index :new_dict[user_name]["record"]={}new_dict[user_name]["record"]["server"]=line.strip().split()[1]new_dict[user_name]["record"]["weight"] = line.strip().split()[3]new_dict[user_name]["record"]["maxconn"] = line.strip().split()[5]#存儲其他不需要修改的信息else:other_list.append(line.strip())while True:print("請選擇需要的功能".center(50,"="))#打印已有節點信息print("已有的節點:")for dict_one in new_dict:print(dict_one) #提供功能選擇界面print("現有功能:\nc、查詢;\na、增加;\nr、修改;\nd、刪除;\nq、退出。")choice = input("請選擇你需要的功能:")#查詢操作if choice =='c' :while True:choice_query = input("請輸入查詢的節點,退出(q):")if choice_query == "q":breakelif choice_query in new_dict:print("節點名稱:", new_dict[choice_query]["bakend"])print("ip地址:", new_dict[choice_query]["record"]["server"])print("權重:", new_dict[choice_query]["record"]["weight"])print("連接數:", new_dict[choice_query]["record"]["maxconn"])else:print("輸入錯誤,請重新輸入")#添加操作elif choice=='a':while True:add_simple_name = input("請輸出節點簡稱")add_name = input("請輸出節點名稱")add_ip = input("請輸出節點ip")add_weight = input("請輸出節點權重")add_maxconn = input("請輸出節點最大連接數")new_dict[add_simple_name]={}new_dict[add_simple_name]["bakend"] = add_namenew_dict[add_simple_name]["record"] = {}new_dict[add_simple_name]["record"]["server"] = add_ipnew_dict[add_simple_name]["record"]["weight"] = add_weightnew_dict[add_simple_name]["record"]["maxconn"] = add_maxconnprint("添加成功",new_dict[add_simple_name])break#修改節點信息操作elif choice == 'r':while True:return_name = input("你想修改哪個節點啊?退出(q)")if return_name == "q":breakelif return_name in new_dict:new_dict[return_name]["bakend"] = input("請輸出修改后節點名稱(例如www.user.org)")new_dict[return_name]["record"]["server"] = input("請輸出修改后節點ip")new_dict[return_name]["record"]["weight"] = input("請輸出修改后節點權重")new_dict[return_name]["record"]["maxconn"] = input("請輸出修改后節點最大連接數")print("保存退出后修改才會生效")break#刪除節點操作elif choice == 'd':while True:delete_name = input("你想刪除那個節點呢,退出(q)?")if delete_name == "q":breakelif delete_name in new_dict:del new_dict[delete_name]print("刪除成功!")else:print("沒有這個節點,重新輸入!")#退出操作,將修改后的節點信息存儲進文件elif choice == 'q':with open("haproxy", "w") as f1 :f1.write("")for i in other_list:with open("haproxy", "a") as f2 :f2.write("%s\n"%i)for i in new_dict:with open("haproxy", "a") as f3 :f3.write("bakend %s\n\tserver %s weight %s maxconn %s\n\n"\%(new_dict[i]["bakend"], new_dict[i]["record"]["server"], new_dict[i]["record"]["weight"],\new_dict[i]["record"]["maxconn"]))print("退出程序成功")breakelse:print("輸入錯誤,請重新輸入\n")

    ?遞歸函數二分查找示例:

    data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35]def binary_search(dataset,find_num):print(dataset)if len(dataset) >1:mid = int(len(dataset)/2)if dataset[mid] == find_num: #find itprint("找到數字",dataset[mid])elif dataset[mid] > find_num :# 找的數在mid左面print("\033[31;1m找的數在mid[%s]左面\033[0m" % dataset[mid])return binary_search(dataset[0:mid], find_num)else:# 找的數在mid右面print("\033[32;1m找的數在mid[%s]右面\033[0m" % dataset[mid])return binary_search(dataset[mid+1:],find_num)else:if dataset[0] == find_num: #find itprint("找到數字啦",dataset[0])else:print("沒的分了,要找的數字[%s]不在列表里" % find_num)binary_search(data,66)

    內置函數參考網址:https://docs.python.org/3/library/functions.html?highlight=built#ascii?

    內置函數使用注意事項:

    #compile f = open("函數遞歸.py") data =compile(f.read(),'','exec') exec(data)#print msg = "又回到最初的起點" f = open("tofile","w") print(msg,"記憶中你青澀的臉",sep="|",end="",file=f)# #slice # a = range(20) # pattern = slice(3,8,2) # for i in a[pattern]: #等于a[3:8:2] # print(i) # ##memoryview #usage: #>>> memoryview(b'abcd') #<memory at 0x104069648> #在進行切片并賦值數據時,不需要重新copy原列表數據,可以直接映射原數據內存, import time for n in (100000, 200000, 300000, 400000):data = b'x'*nstart = time.time()b = datawhile b:b = b[1:]print('bytes', n, time.time()-start)for n in (100000, 200000, 300000, 400000):data = b'x'*nstart = time.time()b = memoryview(data)while b:b = b[1:]print('memoryview', n, time.time()-start)

      

    轉載于:https://www.cnblogs.com/daemon-czk/p/6696811.html

    總結

    以上是生活随笔為你收集整理的二、python基础(列表、元组、字符串、集合、字典、文件操作,函数基本语法及特性)...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久精品99久久久 | 在线电影一区二区 | 国产精品久久久久久久久晋中 | 日本少妇与黑人 | 玖玖爱在线观看 | 欧美色图激情小说 | 婷婷激情四射 | 国产深夜福利在线 | 国产精品色在线 | 亚洲一久久 | 香蕉视频国产在线观看 | 欧美做爰啪啪xxxⅹ性 | 美女被娇喘流出白 | 国产乱码在线观看 | 国产美女永久无遮挡 | 亚洲色偷偷色噜噜狠狠99网 | 1024毛片基地| 四虎影院永久地址 | 欧美一级视频免费 | 黄色福利网| 黄色免费看片 | 久久久久久香蕉 | 久久久穴 | 黄色一级大片在线观看 | 2021国产精品 | 国产乱人伦精品一区二区 | 五月天激情国产综合婷婷婷 | 在线亚洲天堂 | 香蕉综合视频 | 青草视频网 | 成人爱爱网站 | 国产精品久久福利 | 性xxxx视频播放免费 | 极品白嫩的小少妇 | 日本久久片 | 在线视频毛片 | 欧美日韩在线播放 | 超碰999| 亚洲com| 91黄色短视频 | 成人精品视频一区二区 | 1级黄色大片 | 国产精品入口麻豆九色 | 午夜成人免费影院 | 一个人看的www日本高清视频 | 在线看片福利 | 国精品一区二区 | 亚洲精品免费观看 | 69av在线 | 日本精品一区二区三区四区 | 亚洲AV无码成人精品区东京热 | 国产欧美日韩视频在线观看 | 欧美综合亚洲 | 先锋资源av| 国产91在线播放精品91 | 午夜三区 | 国产毛片不卡 | 操干视频| 精品人妻无码一区二区三区蜜桃一 | 久久久久亚洲av无码专区桃色 | 中文 欧美 日韩 | 69免费| 国产精选一区二区 | 一本到视频 | 美国黄色一级大片 | 欧美精品v | 国产成人在线视频免费观看 | 偷拍中国夫妇高潮视频 | 91精品婷婷国产综合久久蝌蚪 | 日本少妇激情舌吻 | 精品一区在线观看视频 | 色老板精品凹凸在线视频观看 | 欧美 日韩 国产 激情 | 午夜xxx | 国产东北真实交换多p免视频 | 日韩欧美国产中文字幕 | 91久久国产精品 | 91手机视频 | 97在线影院 | 欧美精品动漫 | 成人毛片在线视频 | 国产春色 | 色一情一乱一乱一区91av | 日本一区二区在线视频 | 日韩资源网 | 国产伊人一区 | 精品久久久一区二区 | 亚色视频在线 | 午夜精品一二三区 | 美国免费高清电影在线观看 | 禁漫天堂黄漫画无遮挡观看 | 午夜伦理视频 | 欧美激情久久久久久 | 一级网站在线观看 | 婷婷综合 | 国产精品无码一区二区三区免费 | 综合爱爱网 | 自拍视频在线观看 | 国产精品久久综合视频 |