python基礎學習五

晚枫cy發表於2024-11-28
  • 數學類函式

    • abs()求絕對值

      n = -12
      print(abs(n))
      
    • sum() 求和 字串型別的元素不行

    list1 = [11,22,33,44,55]
    res1 = sum(list1)
    print(res1)
    
    • divmod() 傳入兩個數值,前一個除以後一個,得到兩個值:一個商,一個是餘數
    s, y = divmod(16, 5)
    print(s)
    print(y)
    
    • round() 四捨五入
    n = 12.765
    print(round(n,2)) # 12.77
    
    • pow 求冪次方

      print(pow(2,3))
      
  • 聚合類函式

    • max() 求最大值
    list1 = [123,53,225,1123,52,5,3,14]
    res1 = max(list1)
    print(res1)
    
    • mix()最小值

      list1 = [123,53,225,1123,52,5,3,14]
      res1 = min(list1)
      print(res1)
      
    • all 判斷一個列表中是否出現一個False

    # 只要存在一個元素轉bool型別結果是False,all()的結果就是False
    list1 = [12,45,124,'','hello',12.34]
    print(all(list1))
    
    • any 判斷一個列表中是否出現一個True
    # 只要存在一個元素轉bool型別結果是True,all()的結果就是True
    list1 = [12,45,124,'','hello',12.34]
    print(any(list1))
    
  • 和進位制相關的函式

    • 二進位制
    • bin() 將十進位制的值轉二進位制
    print(bin(136)) # 0b10001000
    
    • int() 將某一種進位制轉10進位制

      print(int('0b10001000',2))
      
    • 八進位制

      oct() 將十進位制轉八進位制

      print(oct(136)) # 0o210
      
    • 十進位制

      整數預設都是十進位制

    • 十六進位制

      hex() 將十進位制轉16進位制

    print(hex())
    
    • 字元類函式

    • ord() 將一個字元轉成ASCII碼數值

      '0' - 48

      'A' - 65

      'a' - 97

print(ord('0'))
print(ord('A'))
print(ord('a'))
  • chr() 將數值轉成對應的ASCII碼字元

    print(chr(97))
    
  • 型別轉換相關函式

    • int()

    • str()

    • bool()

    • list()

    • dict()

    • tuple()

    • set()

    • bytes()

      # s1 = '中國'
      # b1 = s1.encode('UTF-8')
      # print(b1, type(b1))
      b2 = bytes('中國','UTF-8')
      print(b2)
      
  • 獲取輸出類函式

    • input()

    • print()

    • len()

    • open()

    • 獲取索引和元素

      list1 = [1,2,3,4]
      for i,j in enumerate(list1):
      print(i,j)
      
    • id() 獲取物件的地址值

    • callable() 判斷一個變數是否是一個函式

    list1 = [1,2,3,4]
    def fun1():
    	pass
    print(callable(fun1))
    
    • sorted() 排序

      list1 = [34,12,5,12,344,53]
      print(f"list1:{list1}")
      list2 = sorted(list1)
      print(f"list1:{list2}") # list1:[5, 12, 12, 34, 53, 344]
      
    • 自定義排序

      list1 = ['小虎:1007', '黃滬生:1009', '查鎔賢:1001', '黃濤:1004', '方直:1002']
      def fun1(e):
      return int(e.split(':')[1])
      list2 = sorted(list1, key=fun1)
      print(f"list1:{list2}")
      
    • zip() 將兩個序列中的元素一一對應

      list1 = [1001, 1002, 1003, 1004, 1005]
      list2 = ['小虎', '黃滬生', '查鎔賢', '黃濤', '方直']
      for i,j in zip(list1,list2):
      print(f"學號:{i}, 姓名:{j}")
      
函式生成式

python中提供了一個關鍵字可以讓我們在函式中使用 yield

def fun1():
    yield 1
    yield 2
    yield 3
    yield 4
    yield 5
res1 = fun1()
print("hello world")
print(res1.__next__())
# 若干行程式碼後
print(res1.__next__())

有yield關鍵字的函式,結果是可以使用for迴圈的

# def fun1():
#     print("hello 1")
#     yield 1
#     print("hello 2")
#     yield 2
#     print("hello 3")
#     yield 3
#     print("hello 4")
#     yield 4
#     print("hello 5")
#     yield 5
# res1 = fun1()
# for i in res1:
#     print(i)
#     print("-----------")
def fun1():
    for i in range(1,11):
    yield i
res1 = fun1()
for i2 in res1:
    print(i2)
    print("-----------")
模組

簡單理解為就是一個.py字尾的一個檔案

  • 內建模組
  • 第三方模組
  • 自定義模組

模組匯入的方式

  • import 直接將一個模組匯入進來
import day06.utils.login_tools as t # 匯入login_tools模組並起了一個別名叫做t
  • from xxx import xxx 從一個模組中,匯入具體的工具

    from lxml import etree
    
    from day06.utils.login_tools import rand_yzm # 從模組login_tools中匯入某一個函式
    from day06.utils.login_tools import rand_yzm,send_email # 一次從模組中匯入多個
    from day06.utils.login_tools import * # 匯入模組中所有的內容
    from day06.utils.login_tools import rand_yzm as t1 # 匯入模組中的函式並重新命名
    
    • 注意: 切記,自己定義的模組名不要和內建或第三方的模組名重名!!!!!
內建函式random模組學習
  1. 理論上,python模組中,任意一個地方都可以進行匯入

  2. 但是規範上,我們開發潛規則上,將匯入的部分放在python模組檔案最開始的位置編寫

  • randint() 隨機生成一個範圍內的整數

    n = random.randint(1000,2000)
    print(n)
    
  • uniform() 隨機生成一個範圍內的小數

n = round(random.uniform(0, 1),2)#用round四捨五入
print(n)
  • choice() 隨機抽取列表中的一個元素
list1=['上','傷']
res1 = random.choice(list1)
print(res1)
print(list1
  • sample() 隨機抽取列表中若干個元素

    list1 = ['張三','李四','王五','趙六','王麻子','小李子']
    # res1 = random.choice(list1)
    # print(res1)
    # print(list1)
    n = random.sample(list1,2)
    print(n, type(n))
    

    練習:使用random模組以及之前學習的知識,編寫一個抽獎程式。

    list1 = ['小虎', '張成陽', '黃濤', '方直', '楊浩東', '黃滬生', '查鎔賢']
    jiang_xiang = [
    ('一等獎', 1, 'mate70 pro'),
    ('二等獎', 1, '小米手環'),
    ('三等獎', 2, '按摩儀'),
    ('四等獎', 2, '京東購物卡')
    ]
    def chou_jiang(l1):
        for i, num, goods in jiang_xiang:
            print(f"正在抽取{i}".center(50, '-'))
            name_list = random.sample(l1,num)
        # 將中獎名單從原名單中刪除
            for n in name_list:
                if n in l1:
                    list1.remove(n)
                    info = f"恭喜{','.join(name_list)} 中得{goods}!!!!"
                    yield info
    res1 = chou_jiang(list1)
    input("開始抽一等獎....按下回車開始!")
    print(res1.__next__())
    input("開始抽二等獎....按下回車開始!")
    print(res1.__next__())
    input("開始抽三等獎....按下回車開始!")
    print(res1.__next__())
    input("開始抽四等獎....按下回車開始!")
    print(res1.__next__())
    

相關文章