主頁 > 後端開發 > Python——基本資料型別(模塊2: time庫的使用)(實體3:文本進度條)

Python——基本資料型別(模塊2: time庫的使用)(實體3:文本進度條)

2021-09-10 09:24:15 後端開發

前言

本篇主要介紹基本資料型別,以文本進度條為例,介紹time庫的使用,
并在最后對蟒蛇繪制的代碼進行分析,
(從本篇開始,出現的一些庫中函式介紹以及部分簡單代碼都將以圖片形式呈現)

讀完本篇,你將了解:
1.方法論
Python語言數字及字串型別
2.實踐能力
初步學會編程進行字符類操作

本篇將系統介紹:
1.數字型別及操作(整數、浮點數、復數及相關函式)
2.字串型別及操作(字串及字串序號、操作函式、型別的格式化)
3.模塊2: time庫的使用(時間獲取、格式化、程式計時應用)
4.實體3:文本進度條(簡單開始->單行動態重繪->完整效果)

了解基本資料型別之后, 通過字串、數字的組合,將能很容易的操作字符,使我們能更好的開展程式設計

一、數字型別及操作

1.整數型別

與數學中整數的概念一致,可正可負,沒有取值范圍限制
(1)pow(x,y)函式∶計算x的y次方,由于整數沒有限制,想算多大算多大
(2)4種進制表示形式
①十進制:1010,99,-217
②二進制,以0b或0B開頭:0b010,-OB101
③八進制,以0o或0O開頭:0o123,-OO456
④十六進制,以0x或0X開頭:0x9a,-0X89

2.浮點數型別

與數學中實數的概念一致,帶有小數點及小數的數字
(1)注意:浮點數取值范圍和小數精度都存在限制,但常規計算可忽略
取值范圍數量級約-10^(308) 10^(308)
精度數量級:10^-16
(2)不確定尾數:浮點數間運算存在不確定尾數,不是bug
①舉例:>>> 0.1 + 0.3輸出0.4
>>> 0.1 +0.2輸出0.30000000000000004
涉及到計算機對數字運算的內部實作原理
②原理:計算機中采用二進制表達數字,Python中采用53位二進制表示小數部分,約10^-16
由于計算機中的二進制跟十進制之間,不存在嚴格的對等關系,計算機只能截取53位,無限接近0.1
輸出時只保留16位,之后的并未輸出,故二進制與十進制之間轉換出現不確定尾數
(3)round(x, d):對x四舍五入,d是小數截取位數
①浮點數間運算及比較用round()函式輔助
②不確定尾數一般發生在10^-16左右,round()十分有效
(4)科學計數法
①格式:使用字母e或E作為冪的符號,以10為基數,格式如下:
(a)e(b)表示a*10b
②例如∶4.3e-3 值為0.0043或9.6E5值為960000.0

3.復數(僅Python提供)

與數學中復數的概念一致
(1)定義j=√(-1),以此為基礎,構建數學體系
(2)a+bj被稱為復數,其中,a是實部,b是虛部
(3)z.real獲得實部、z.imag獲得虛部
(4)客觀說常規編程中很少使用,但是它卻是進行空間變換,尤其是跟復變函式相關的科學體系中最常用的一種型別

4.數字型別及操作

運算子是完成運算的一種符號體系
(1)一些基礎運算子
在這里插入圖片描述

注意:/的結果保留小數
在這里插入圖片描述

(2)對二元運算子的增強型運算子
在這里插入圖片描述

(3)數字型別的關系
型別間可進行混合運算,生成結果為"最寬"型別
①三種型別存在一種逐漸"擴展"或"變寬"的關系∶
整數->浮點數->復數
②例如:123 +4.0 = 127.0 (整數+浮點數=浮點數)

5.數值運算函式

(1)Python提供的一些函式
在這里插入圖片描述
在這里插入圖片描述

(2)數字型別轉換函式
在這里插入圖片描述

二、字串型別及操作

1.字串型別的表示

(1)字串:
由0個或多個字符組成的有序字符序列
①字串由一對單引號或一對雙引號表示:"請輸入帶有符號的溫度值: "或’C’
②字串是字符的有序序列,可以對其中的字符進行索引(從0開始)
如:"請"是"請輸入帶有符號的溫度值:”的第O個字符

(2)字串有2類共4種表示方法
①由一對單引號或雙引號表示,僅表示單行字串
如:“請輸入帶有符號的溫度值: “或’℃’
②由一對三單引號或三雙引號表示,可表示多行字串(作用而言,也可當作注釋使用)
‘’’ Python
語言‘’‘
③如果希望在字串中包含雙引號或單引號呢?
若字串中出現雙引號,那么最外層的引號就要使用單引號,反之
如:'這里有個雙引號(”)‘或者"這里有個單引號(’)”
④如果希望在字串中既包括單引號又包括雙引號呢?
則用三個單引號表示
如:’‘’這里既有單引號(’)又有雙引號(")‘’‘
⑤故這4種方法存在冗余,使得字串中出現單引號或者雙引號的處理更方便簡單

(3)字串的序號
正向遞增序號和反向遞減序號
在這里插入圖片描述

①使用[ ]獲取字串中一個或多個字符
1)索引∶回傳字串中單個字符 <字串>[M]
"請輸入帶有符號的溫度值: "[0]或者TempStr[-1]
2)切片:回傳字串中一段字符子串 <字串>[M: N]
“請輸入帶有符號的溫度值:”[1:3]或者TempStr[0:-1]
(這里之前說過,不再多作贅述)

②字串切片的高級用法
使用[M: N:K]根據步長對字串切片
1)<字串>[M: N],M缺失表示至開頭,N缺失表示至結尾
如:“o一二三四五六七八九十”[:3]結果是"O一二"(從最開始到3前一個為止)
2)<字串>[M: N: K],根據步長K對字串切片
“o一二三四五六七八九十”[1:8:2]結果是"一三五七"(從第一位置到第八位置前結束,步長為2取)
3)小技巧:將字串逆序[::-1]
“o一二三四五六七八九十”[::-1]結果是"十九八七六五四三二一o"
(從最開始到結尾,步長-1(即從后向前逐一取出),相當于逆序)

③轉義符
1)轉義符表達特定字符的本意
“這里有個雙引號(”)”結果為:這里有個雙引號(")
2)轉義符形成一些組合,表達一些不可列印的含義
如:"\b"回退“ \n"換行(游標移動到下行首)“ \r”回車(游標移動到本行首)

2.字串運算子

(1)由0個或多個字符組成的有序字符序列
在這里插入圖片描述

(2)舉例:獲取星期字串
輸入∶1-7的整數,表示星期幾
輸出∶輸入整數對應的星期字串
例如∶輸入3,輸出星期三

weekStr = "星期一星期二星期三星期四星期五星期六星期日"
weekId = eval(input("請輸入星期數字(1-7):"))
pos = (weekId-1)*3  # 算出起始索引的位置
print(weekStr[pos:pos+3]) # 使用切片操作,將切片結果回傳給用戶


利用運算子改進

weekStr = "一二三四五六日"
weekId = eval(input("請輸入星期數字(1-7):"))
print("星期"+weekStr[weekId-1])

3.字串處理函式

(1)一些以函式形式提供的字串處理功能
在這里插入圖片描述

str和eval是一對對應的函式
在這里插入圖片描述

這兩個函式也是一對對應函式
(2)Unicode編碼
Python字串的編碼方式
①統一字符編碼,即覆寫幾乎所有字符的編碼方式
②從0到1114111(Ox10FFFF)空間,每個編碼對應一個字符
③Python字串中每個字符都是Unicode編碼字符,使得Python程式不限于中文英文韓文日文俄文等
④一些有趣的例子:
>>> "1 +1 = 2 " +chr( 10004)輸出’1 +1 = 2 √’

4.字串處理方法

(1)方法
"方法"在編程中是一個專有名詞
①"方法"特指(a).(b)風格中的函式b()
②方法本身也是函式,但與a有關,是a能提供的函式,必須a.b()風格使用(面向物件的一種使用風格)
③字串及變數也是a,存在一些方法

(2)8個常用方法(字串及變數也是a,存在一些方法)
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

①split()函式:例子中用逗號分隔字串,即只要出現逗號就會把字串拆解為兩個部分
故A后的逗號就會將A單獨形成一個字串,B同樣,然后將他們放成一個串列型別回傳給用戶
②center()函式:(對字串格式進行處理)根據width居中,居中后剩余兩側填充為fillchar(使列印規則的輸出處理簡易)
③strip()函式:去除字串左右兩側預定義字符

5.字串型別的格式化

格式化是對字串進行格式表達的方式
(1)字串格式化使用.format()方法,用法如下:
<模板字串>.format(<逗號分隔的引數>)
(2)槽
相當于一個占位資訊符,它使用一對{}來表示,只在字串中有用
①舉例
在這里插入圖片描述

1)每一個槽中所要添加的內容與.format方法中對應的引數相一致
2)槽的3個順序在不指定的情況下默認為012
3)將format方法中的引數按照對應順序填到模板字串的槽中
4)進一步可在槽中指定需要添加的引數的位置
在這里插入圖片描述

(3)Python語言使用槽機制加上format方法,來形成字串的格式化
除引數序號之外,如果某一個槽中確定關聯的某一個引數,可以對引數的輸出格式進行控制,
在槽內部使用格式化的控制標記來進行格式控制

(4)format()方法的格式控制
①槽內部對格式化的配置方式
通過一個冒號來引導一些引數,控制某一個變數在槽位置的輸出格式
Python一共提供了六種格式控制標記
在這里插入圖片描述

分為兩組記憶
②前三個引數為一組,這三個引數分別表達填充、對齊和寬度
基本模式:
1)給出一個輸出寬度
2)決定即將輸出的這個引數在這個寬度中的對齊方式
3)確定對齊方式之后,若還有空余空間,該填充什么字符
首先要給定填充,其次設定對齊,最后設定寬度
4)舉例
在這里插入圖片描述

第一個例子中:
在一個模板字串中,槽中給出“:=^20”,=指填充符號,空余空間中填=的單字符
^表明居中對齊(>指右對齊)指的是所放入槽中的format方法中的第0個引數以居中對齊方式來顯示
20指輸出寬度
第三個例子中:
省略填充、對齊,直接給出寬度,默認情況下填充為空格,變數左對齊

③后三個都是與具體的數字有關(控制數字型別輸出)
1)<,>:數字的千位分隔符(這種情況只有在輸出字串,但是當作數字給人閱讀的時候才會使用)
2)<.精度>:浮點數小數精度或字串最大輸出長度
3)<型別>:我們以什么樣的型別將變數放到槽中
4)舉例
在這里插入圖片描述

第一個例子中:
.2f表示保留兩位小數并使用千位分隔符
第二個例子中:
對425以:b的形式輸出二進制格式,以:c的形式輸出字符形式(即Unicode編碼形式)
以:d的形式輸出十進制格式, 以:o的形式輸出八進制格式
以:x的形式輸出十六進制格式, 以:X的形式輸出大寫十六進制格式
第三個例子中:
以:e的形式采用科學計數法e形式表示浮點數, 以:E的形式采用科學計數法E形式表示浮點數,
以:f的形式采用通常的非科學計數法表示浮點數, 以:%的形式采用百分號形式表示浮點數,

三、time庫的使用

1.time庫基本介紹

(1)time庫是Python中處理時間的標準庫
①計算機時間的表達
②提供獲取系統時間并格式化輸出功能
③提供系統級精確計時功能,用于程式性能分析

(2)使用方法:
import time
time.b()
以此呼叫相關函式(最典型最直接Python庫的使用方法)

(3)time庫包括三類函式
①時間獲取:time() ctime() gmtime()
②時間格式化并輸出: strftime() strptime()
③程式計時(time庫的重要功能): sleep(), perf_counter()

2.時間獲取

(1)一些函式
在這里插入圖片描述

①時間戳是一個很長的浮點數,表示從1970年1月1日0:00開始,到當前這一時刻為止的,一個以秒為單位的數值
②ctime():給出一個具體的時分秒的時間(time庫中獲取人類譯讀方式時間的最簡單的函式)
在這里插入圖片描述

③gmtime():獲取當前時間,但獲取后生成的格式不一樣,生成的是一種計算機程式可以處理的時間格式
(2)這三個函式基本能對獲取來的時間做所有可能的后續處理

3.時間格式化

將時間以合理的方式展示出來
(1)格式化
①格式化:類似字串格式化,需要有展示模板
②展示模板由特定的格式化控制符組成(告訴程式輸出的時間大概是什么樣子)
③實作時間格式化的方法:strftime()方法
(2)strftime()
在這里插入圖片描述

(3)時間格式化很重要的一點
將計算機內部時間中,表達的年月日時分秒等相關的與時間有關的資訊,用一種變數的形式進行合理組合,并合理輸出
通過控制來表達輸出格式
(4)time庫中的控制符
格式:%+字母
在這里插入圖片描述
在這里插入圖片描述

(可回顧剛剛的例子)

(5)strptime()
在這里插入圖片描述

將一個字串變成一個計算機內部可操作的一個時間(特定程式中才會使用)

4.程式計時應用

(1)程式計時應用廣泛
①程式計時指測量起止動作所經歷時間的程序
②測量時間: perf_counter()(獲取計算機中CPU以其頻率運行的時鐘,往往以納秒來計算,非常精準)
③產生時間: sleep()(讓程式休眠或產生一定時間)

(2)perf_counter()
在這里插入圖片描述

(3)sleep()
在這里插入圖片描述

四、實體4:文本進度條

1.需求分析

(1)文本進度條
①采用字串方式列印可以動態變化的文本進度條
②進度條需要能在一行中根據程式的運行逐漸變化(與時間有一定關系)
(2)如何獲得文本進度條的變化時間?
采用sleep()模擬一個持續的進度

2.“文本進度條“簡單的開始

(1)代碼實作

# TextProBarV1
import time
scale = 10
print("------執行開始------")
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale-i)
    c = (i/scale)*100
    print("{:3.0f}%[{}->{}]".format(c, a, b))
    time.sleep(0.1)
print("------執行結束------")

①該代碼完成了一個基本的文本進度條框架
②執行效果:生成一個有開始、結束標記,且有一定進度百分比表示的進度條格式
在這里插入圖片描述

(2)代碼簡單分析
①引入time庫,使用time庫的sleep()函式來生成一個持續不斷的時間
②列印“執行開始”“執行結束”作為標簽
③定義變數scale=10,指文本進度條的大概的寬度
④for回圈模擬進度:for i in range(n)結構
⑤基本原理:定義休眠時間,每次回圈都會列印當前進度條狀態,進行一個簡單的休眠
⑥for回圈中的相關作業:
1)a等于字符(乘號)與回圈變數i的乘積(字串與整數的乘積表示字串被復制的次數)
指當前百分比所表達的資訊
2)b等于’.'與當前剩余的進度條的比例之間的乘積
3)a與b構成當前進度比例中,與已經執行的和未知執行的之間的對應的(星號)和‘.'兩者之間的關系
4)變數c等于i除以scale乘以100,輸出與當前進度條與進度相關的百分比
⑦print函式設定三個槽,在每個槽中增加了百分比以及相應字串
⑧指向效果如上圖

3.“文本進度條“單行動態重繪

(1)單行動態重繪:
重繪的關鍵是\r
①重繪的本質是:用后列印的字符覆寫之前的字符
②不能換行:print()需要被控制(print()默認輸出之后會換行到下一行)
③要能回退:需要讓列印后游標退回到之前的位置\r(輸出字串之后,游標會移動到字串之后)
(2)代碼實作

# TextProBarV1
import time
for i in range(101):
    print("\r{:3}%".format(i), end="")
    time.sleep(0.1)

①使用time庫及sleep()函式,101次的回圈(0%到100%)
②代碼關鍵:print函式
輸出資訊之后,增加,end=""這樣一個引數,可以改變每一次print輸出最后增加的那個資訊
比如在這里我們使end賦值為空字串,那么print函式每一次輸出字串之后,不會增加換行
只會把游標停留在當次輸出字串的后面
③總結:若希望輸出的字串后面增加什么資訊,就在end引數中增加,不希望增加換行,使end賦值為空字串
④print的第一個引數:\r,一個槽,并給出百分號
\r:列印輸出之前,它能夠使游標退回到當前行的行首

4.“文本進度條“實體完整效果

(1)代碼實作

# TextProBarV3
import time
scale = 50
print("執行開始".center(scale//2, "-"))
start = time.perf_counter()
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i / scale) * 100
    dur = time.perf_counter() - start
    print("\r{:3.0f}%[{}->{}]{:.2f}s".format(c, a, b, dur), end="")
    time.sleep(0.1)
print("\n"+"執行結束".center(scale//2, '-'))

(2)代碼分析
與第一段代碼很接近,重點分析修改
①第一個和最后一個print,center函式用-填充在兩側
②增加計時效果:對程式進度有更好的展示(程式運行開始變數start開始時間)
③for回圈:保留abc變數,新增dur變數記錄每一次需要列印文本進度條時所消耗的時間,當前時間減去最開始記錄的時間
④for中的print函式:列印文本進度條
1)單行重繪效果:最開始增加\r,實作游標向行首的移動
2)同時print函式要增加end引數,end賦值為空字串:每次輸出之后不換行
(3)效果:具有一定格式框架,有進度“*”輸出,又有時間記錄的完整的文本進度條
(4)這段代碼覆寫了字串處理,覆寫了數字處理,時間庫的使用
效果如圖
在這里插入圖片描述

5.“文本進度條“舉一反三

(1)計算問題擴展
①文本進度條程式使用了perf_counter()計時
②計時方法適合各類需要統計時間的計算問題
③例如︰比較不同演算法時間、統計部分程式運行時間
(2)進度條擴展
①在任何運行時間需要較長的程式中增加進度條
②在任何希望提高用戶體驗的應用中增加進度條
③進度條是人機互動的紐帶之一
(3)文本進度條的不同設計函式(作擴展用)
在這里插入圖片描述

總結

經過本篇的學習,可以大致掌握運用time庫去實作基本的文本進度條(本篇只是基礎),大家可以嘗試不同的進度條設計風格,善于使用time庫函式來抓取時間,
如有錯誤,歡迎指正!
注:代碼非原創
下篇將介紹程式的控制結構,
ps(又咕咕了)

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/298954.html

標籤:python

上一篇:云原生愛好者周刊:開源替代品開始圍剿 Docker Desktop

下一篇:有時候苦苦找尋的東西,原來是近在咫尺——學習資源!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more