1. 程式人生 > >python3-cookbook第三章簡摘

python3-cookbook第三章簡摘

1.對浮點數執行指定精度的舍入運算。

對於簡單的舍入運算,使用內建的 round(value, ndigits) 函式即可
>>> round(1.23, 1)
1.2
>>> round(1.27, 1)
1.3
>>> round(-1.27, 1)
-1.3
>>> round(1.25361,3)
1.254

2.你需要轉換或者輸出使用二進位制,八進位制或十六進位制表示的整數,該怎麼做?

可以分別使用 bin() , oct() 或 hex() 函式
>>> x = 1234
>>> bin(x)
'0b10011010010'
>>> oct(x)
'0o2322'
>>> hex(x)
'0x4d2'
>>>

另外,如果你不想輸出 0b , 0o 或者 0x 的字首的話,可以使用 format() 函式。比如:

>>> format(x, 'b')
'10011010010'
>>> format(x, 'o')
'2322'
>>> format(x, 'x')
'4d2'
>>>

整數是有符號的,所以如果你在處理負數的話,輸出結果會包含一個負號。比如:

>>> x = -1234
>>> format(x, 'b')
'-10011010010'
>>> format(x, 'x')
'-4d2'
>>>

如果你想產生一個無符號值,你需要增加一個指示最大位長度的值。比如為了顯示32位的值,可以像下面這樣寫:

>>> x = -1234
>>> format(2**32 + x, 'b')
'11111111111111111111101100101110'
>>> format(2**32 + x, 'x')
'fffffb2e'
>>>

為了以不同的進位制轉換整數字符串,簡單的使用帶有進位制的 int() 函式即可:

>>> int('4d2', 16)
1234
>>> int('10011010010', 2)
1234
>>>

3.查詢星期中某一天距離今天最後出現的日期,比如星期五。

from datetime import datetime, timedelta

def get_previous_byday(dayname, start_date=None):
    """
    Topic: 最後的週五
    Desc :
    """
    weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday',
                'Friday', 'Saturday', 'Sunday']

    if start_date is None:
        start_date = datetime.today()
    day_num = start_date.weekday()
    day_num_target = weekdays.index(dayname)
    days_ago = (7 + day_num - day_num_target) % 7
    if days_ago == 0:
        days_ago = 7
    target_date = start_date - timedelta(days=days_ago)
    return target_date
上面的演算法原理是這樣的:先將開始日期和目標日期對映到星期陣列的位置上(星期一索引為0), 然後通過模運算計算出目標日期要經過多少天才能到達開始日期。然後用開始日期減去那個時間差即得到結果日期。

相關推薦

python3-cookbook

1.對浮點數執行指定精度的舍入運算。 對於簡單的舍入運算,使用內建的 round(value, ndigits) 函式即可 >>> round(1.23, 1) 1.2 >>> round(1.27, 1) 1.3 >

Vulkan Cookbook 譯者總結篇

本篇對第三章進行總結。 為了讓Vulkan處理我們的命令,必須建立命令緩衝區將命令記錄在緩衝區中然後提交給特定佇列。 為了得到我們想要的命令緩衝區需要先通過邏輯裝置級函式建立命令池,然後通過命令池分配一個命令緩衝區,此操作也同樣通過邏輯裝置級函式。 為了將命令記錄到命令緩衝區,我們必須保

Vulkan Cookbook 19 銷燬命令池

銷燬命令池 譯者注:示例程式碼點選此處 當從給定池分配的所有命令緩衝區不在使用,並且我們也不需要該池時,可以安全的銷燬它。 怎麼做... 1.獲取邏輯裝置控制代碼並將其儲存在名為logical_device的VkDevice型別變數中。 2.使用應銷燬的池的控制代碼來初始化名為com

Vulkan Cookbook 18 釋放命令緩衝區

釋放命令緩衝區 譯者注:示例程式碼點選此處 當不再需要命令緩衝區以及它們未等待在裝置上執行時,可以釋放它們。 怎麼做... 1.獲取邏輯裝置的控制代碼並使用它來初始化名為logical_device的VkDevice型別變數。 2.獲取從邏輯裝置建立的命令池的控制代碼。將此控制代碼儲

Vulkan Cookbook 17 摧毀訊號量

摧毀訊號量 譯者注:示例程式碼點選此處 訊號量可以多次重複使用,因此通常我們不需要在應用程式執行時刪除它們。但是當不再需要訊號量時,如果我們確定裝置沒有使用它(沒有待處理的等待,也沒有待處理的訊號操作),我們就可以銷燬它。 怎麼做... 1.獲取邏輯裝置的控制代碼。將此控制代碼儲存在

Vulkan Cookbook 2 分配命令緩衝區

分配命令緩衝區 命令緩衝區用於儲存(記錄)稍後提交給佇列的命令,它們位於佇列中由硬體執行處理後給我們結果。當我們建立命令池時,可以用它們來分配命令緩衝區。 怎麼做... 1.獲取已建立邏輯裝置的控制代碼,並將其儲存在名為logical_device的VkDevice

python3-cookbook5摘要-檔案與IO

1.如何在迭代一個序列的同時跟蹤正在被處理的元素索引。 內建的 enumerate() 函式可以很好的解決這個問題: >>> my_list = ['a', 'b', 'c'] >>> for idx, val in en

Python培訓知識總結系列- Python3文件操作(一)

readline new socket 總結 排序 tin strip() list 是否 open 123456789f = open(‘filename‘,‘r‘) # 讀模式f = open(‘filename‘,‘w‘) # 寫模式f = open(‘filenam

python3網路爬蟲: Scrapy 爬蟲框架 (1)

1.認識目錄結構 安裝略過,使用命令建立專案 scrapy startproject myfirstpjt 這裡面 scrapy.cfg 是爬蟲專案配置檔案,專案的同名子資料夾中,init.py 是初始化檔案,items.py 是爬蟲專案的資料容器檔案,piplines

python cookbook 學習筆記 數字日期和時間(9) 大型資料運算

大型資料運算 -問題: 需要在大資料集(比如陣列或網路)上面執行計算。 解決方案: 涉及到陣列的重量級運算,可以使用 Numpy 庫。Numpy 的一個主要特徵是他會給 Python 提 供一個數組物件,相比標準的 Python 列表更適合用來做數學運

上機+

----第三章上級練習一 --declare @a int --set @a=1 --declare @b int --set @b=1 --declare @c nvarchar(8) --set @c='*' --while(@a<=5) --begin --wh

讀構建之法 :軟件工程師的成長

知識點 可維護 vid -s 評估 不同 fun 可靠 科研 本章理論和知識點:評價軟件工程師水平的主要方法 軟件工程把相關的技術和過程統一到一個體系中,叫“軟件開發流程”,軟件開發流程的目的是為了提高軟件開發、運營、維護的效率,以及提升用戶滿意度、軟件的可靠性和可維護性。

Js高設筆記

efi alert html 產生 數據 span mil blog com 第三章 數據類型 P25 1, var message; //age變量尚未聲明 alert(message); //"undefined" alert(age); //產生錯誤

總結

tsp 領域 style 成長 集體 lib con 需要 能夠 本章主要的理論和知識點是評價軟件工程師水平的主要方法、技能的反面以及TSP對個人的要求。 首先,不同的數據能夠從不同方面一個展示軟件工程師的技術和能力,例如,通過完成時間平均值的比較,兩位工程師或許能決出完成

軟件工程師的成長

出發 int 開始 體系 會議 tor 可重復 設計 標準 軟件工程包括了開發、運營、維護軟件的過程中的很多技術、做法、習慣和思想。軟件工程把這些相關的技術和過程統一到一個體系中,叫“軟件開發流程”,軟件開發流程的目的是為了提高軟件開發、運營、維護和效率,以及提升用戶滿意度

構建之法讀書心得

如何 讀書心得 初級 知識 技能 任務 項目 標準 技術   在構建之法第三章中,我們主要學習了個人能力的衡量與發展。   初級軟件工程師有以下幾個成長階段:1、積累軟件開發相關的知識,提升技術技能。                    2、積累問題領域的知識和經驗。  

-- DNS

linux一、DNS基礎配置 *)客戶端配置 vim /etc/resolv.conf 編輯dns配置文件 *)服務端配置 yum install bind -y 安裝dns服務 systemctl stop firewalld 關閉防火墻 systemctl tart name

『Python』Numpy學習指南__常用函數

第一個 indices first 填充 del lib ida like otl 感覺心情漸漸變好了,加油!np.eye(2)np.savetxt(‘eye.txt‘,i2)c,v = np.loadtxt(‘data.csv‘, delimiter=‘,‘, useco

補基礎:自學:計算機科學導論 數據存儲

計算機科學 通用 3.1 數據類型 數字 文字 音頻 圖像 視頻 計算機內部的數據 所有計算機外部的數據類型的數據都采用統一的數據表示法轉換後存入計算機中,當數據從計算機輸出時再還原回來。這種通用的格式稱為位模式。 1. 位:是存儲在計算機中的最小

補基礎:自學:計算機科學導論 數據存儲 續

計算機科學 二進制 科學技術 十進制 小數點 3.2.2 存儲實數 1. 浮點表示法 該表示法允許小數點浮動,用於維持正確度或精度。 在此表示法中,無論十進制還是二進制,一個數字都由3部分組成: 符號 位移量: 顯示小數點應該左右移動構成實際數