主頁 > 後端開發 > [Python從零到壹] 二.語法基礎之條件陳述句、回圈陳述句和函式

[Python從零到壹] 二.語法基礎之條件陳述句、回圈陳述句和函式

2020-09-12 17:10:29 後端開發

歡迎大家來到“Python從零到壹”,在這里我將分享約200篇Python系列文章,帶大家一起去學習和玩耍,看看Python這個有趣的世界,所有文章都將結合案例、代碼和作者的經驗講解,真心想把自己近十年的編程經驗分享給大家,希望對您有所幫助,文章中不足之處也請海涵,

Python系列整體框架包括基礎語法10篇、網路爬蟲30篇、可視化分析10篇、機器學習20篇、大資料分析20篇、影像識別30篇、人工智能40篇、Python安全20篇、其他技巧10篇,您的關注、點贊和轉發就是對秀璋最大的支持,知識無價人有情,希望我們都能在人生路上開心快樂、共同成長,

本文參考了作者CSDN的文章,鏈接如下:

  • https://blog.csdn.net/Eastmount
  • https://github.com/eastmountyxz/Python-zero2one

同時,作者新開的“娜璋AI安全之家”將專注于Python和安全技術,主要分享Web滲透、系統安全、人工智能、大資料分析、影像識別、惡意代碼檢測、CVE復現、威脅情報分析等文章,雖然作者是一名技術小白,但會保證每一篇文章都會很用心地撰寫,希望這些基礎性文章對你有所幫助,在Python和安全路上與大家一起進步,

文章目錄

  • 一.條件陳述句
    • 1.單分支
    • 2.二分支
    • 3.多分支
  • 二.回圈陳述句
    • 1.while回圈
    • 2.for回圈
    • 3.Break、Continue和Pass陳述句
    • 4.嵌套回圈
  • 三.函式
    • 1.自定義函式
    • 2.常見內部庫函式
    • 3.第三方庫函式
  • 四.總結



一.條件陳述句

在講訴條件陳述句之前,需要先補充陳述句塊的知識,陳述句塊并非一種陳述句,它是在條件為真時執行一次或執行多次的一組陳述句,在代碼前放置空格縮進即可創建陳述句塊,它類似于C、C++、Java等語言的大括號({ })來表示一個陳述句塊的開始和結束,

在Python中使用冒號(:)來標識陳述句塊的開始,塊中每一條陳述句都有縮進并且縮進量相同,當回退到上一層縮進量時,就表示當前陳述句塊已經結束, 下面開始詳細講解條件陳述句,

1.單分支

單分支語法如下:

if <condition>:
	<statement>
	<statement>

< condition > 是條件運算式,基本格式為< expr >< relop >< expr >;< statement >是陳述句主體,判斷條件如果為真(True)就執行陳述句,如果為假(False)就跳過陳述句,執行下一條陳述句,條件判斷通常有布爾運算式(True、False)、關系運算式(>、<、>=、<=、= =、!=)和邏輯運算運算式(and、or、not,其優先級從高到低是not、and、or)等,

注意:在Python2.x版本中,條件運算式是不強制要求用括號括起來的,但條件運算式后面一定要添加英文冒號字符,

a = 10
if a==10:
    print('變數a等于10')
    print(a)

輸出結果如下:
在這里插入圖片描述



2.二分支

二分支語法如下:

if <condition>:
	<statement>
	<statement>
else:
	<statement>
	<statement>

執行程序如下圖所示:

在這里插入圖片描述

如果條件陳述句< condition >為真,if后面的陳述句就被執行,如果為假,則執行else下面的陳述句塊,條件陳述句的格式為:< expr >< relop >< expr >,其中< expr >為運算式、為關系運算子,例如:a >= 10、b != 5等,

a = 10
if a >= 5:
    print('變數a大于等于5')
    print(a)
else:
    print('變數a小于5')
    print(a)

輸出結果如下,由于變數a為10,大于5執行if中的陳述句,

在這里插入圖片描述



3.多分支

if多分支由if-elif-else組成,其中elif相當于else if,同時它可以使用多個if的嵌套,具體語法如下所示:

if <condition1>:
	<case1 statements>
elif<condition2>:
	<case2 statements>
elif<condition3>:
	<case3 statements>
...
else:
	<default statements>

該陳述句是順序評估每個條件,如果當前條件分支為True,則執行對應分支下的陳述句塊,如果沒有任何條件成立,則執行else中的陳述句塊,其中else是可以省略的,代碼如下:

num = input("please input:")
num = int(num)
print(num)
if num >= 90:
    print('A Class')
elif num >= 80:
    print('B Class')
elif num >= 70:
    print('C Class')
elif num >=60:
    print('D Class')
else:
    print('No Pass')

輸出值為76,則在80到70之間,成績為C等級,輸出結果如下圖所示,

在這里插入圖片描述

注意:由于Python不支持switch陳述句,所以多個條件判斷,只能用elif來實作,如果判斷需要多個條件需同時判斷時,可以:

  • 使用or (或),表示兩個條件有一個成立時判斷條件成功
  • 使用and (與),表示只有兩個條件同時成立的情況下,判斷條件才成功
# 判斷值是否在小于0或大于10
num = 10
if num < 0 or num > 10:    
    print('hello')
else:
    print('undefine')
# 輸出結果: undefine


# 判斷值是否在0~5或者10~15之間
num = 8
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):    
    print('hello')
else:
    print('undefine')

輸出結果如下圖所示:

在這里插入圖片描述

當if有多個條件時可使用括號來區分判斷的先后順序,括號中的判斷優先執行,此外and和or的優先級低于>(大于)、<(小于)等判斷符號,即大于和小于在沒有括號的情況下會比與或要優先判斷,

同時,你也可以在同一行的位置上使用if條件判斷陳述句,如下實體,但不見大家使用類似的語法,在我們撰寫專案或實戰中,很可能你的代碼會供別人學習,有時你只負責其中一部分,良好的代碼格式及注釋是非常必要的,

var = 520
if (var ==520): print("感謝您關注娜璋AI安全之家")


二.回圈陳述句

Python回圈陳述句主要分為while回圈和for回圈,它允許我們執行一個陳述句或陳述句組多次,

1.while回圈

while回圈陳述句的基本格式如下:

while <condition>:
	<statement>
else:
	<statement>

執行流程如下圖所示:

在這里插入圖片描述

條件運算式< condition >如果為真時,則回圈體重復執行,直到條件判斷為假,回圈體終止,如果第一次判斷條件就為假,則直接跳出回圈執行else陳述句,注意else陳述句可以省略,同時冒號(:)開始進入回圈體,縮進區分陳述句塊,條件陳述句condition包括布爾運算式(True、False)、關系運算式(>、<、>=、<=、= =、!=)和邏輯運算運算式(and、or、not)等,

案例1:1+2+…+100

i = 1  
s = 0  
while i <= 100:  
    s = s+i  
    i = i+1  
else:  
    print('over')
print('sum = ', s)

這段代碼是作者寫博客或授課時,講述回圈陳述句最常用的例子,求1+2+3+…+100的結果,答案是5050,該段代碼反復執行“i<=100”判斷,當i加到101時,判斷i>100為假則結束回圈執行else陳述句,

在這里插入圖片描述


案例2:回圈打開網站
再舉一個實體,通過定義一個while回圈,呼叫webbrowser庫的open_new_tab()函式回圈打開百度首頁網址,下面代碼反復打開了百度首頁5次,完整代碼如下:

import webbrowser as web  
import time  
import os

i=0  
while i<5:  
    web.open_new_tab('http://www.baidu.com')  
    i=i+1  
    time.sleep(0.8)  
else:  
    os.system('taskkill /F /IM iexplore.exe')  
print('close IE')

代碼是呼叫webbrowser庫中open_new_tab()函式打開視窗(百度鏈接)5次,

在這里插入圖片描述

最后回圈結束執行os.system()作業系統函式,呼叫taskkill命令結束IE瀏覽器行程(Iexplore.exe),其他瀏覽器程式修改為chrome.exe、qq.exe或firefox.exe即可,其中引數“/F”表示強行終止程式,“/IM”表示影像,如下圖所示,

在這里插入圖片描述

注意:上述代碼實作了回圈打開某個網站,可以應用于刷取網頁瀏覽量或Web開發測驗等功能,比如新浪博客等部分網頁打開一次瀏覽器會計算一次瀏覽次數,通過上面這段代碼可以回圈增加閱讀量,部分網站又是通過瀏覽量進行排序的,不妨試試看,作者引入該代碼僅為讀者了解回圈,也為后面的爬蟲知識埋下伏筆,


案例3:奇數和偶數計算
最后補充一個奇數和偶數計算的案例,其基本流程如下圖所示:

在這里插入圖片描述

代碼如下:

numbers = [12, 37, 5, 42, 8, 3]
even = []
odd = []
while len(numbers) > 0:
    number = numbers.pop()
    if(number % 2 == 0):      #偶數判斷
        even.append(number)
    else:
        odd.append(number)
#輸出結果
print(even)
print(odd)

輸出結果如下:

[8, 42, 12]
[3, 5, 37]


2.for回圈

for回圈陳述句的基本格式如下:

for <var> in <sequence>:
	<statement>
	<statement>

流程圖如下:

在這里插入圖片描述

自定義回圈變數var遍歷sequence序列中的每一個值,每個值執行一次回圈的陳述句塊,sequences表示序列,常見型別有list(串列)、tuple(元組)、strings(字串)和files(檔案),下面的代碼是計算1到100的求和,輸出三角形星號的示例,

#元組回圈
tup = (1,2,3,4,5)  
for n in tup:  
    print(n)  
else:  
    print('End for\n')
    
#計算1+2+...+100
s = 0
for i in range(101):
    s = s + i
print('sum =', s)

#輸出三角形星號
for i in range(10):
    print("*"*i)

輸出結果如下圖所示,回圈遍歷元組tup變數中的值,依次獲取并輸出;然后計算1累加到100,range(101)表示依次獲取101范圍內的100個數字,其累加結果為5050;最后輸出星號三角形,print “ * ” * i 代碼中,第一個星號表示輸出星號字串,第二個星號是乘法,表示輸出5個星號,終輸出三角形,列印圖形是編程基礎,使用Python實作要比C語言容易很多,但原理邏輯是一樣的,

在這里插入圖片描述



3.Break、Continue和Pass陳述句

Break和Continue是兩個常用的跳出回圈陳述句,

  • Break陳述句
    跳出最內層while、for回圈,在陳述句塊執行程序中終止回圈,并且跳出整個回圈,
s = 0
num = 0
while num<20:
    num += 1
    s += num
    if s > 100:
        break
print("The sum is", s)
# The sum is 105

當求和變數s大于100的時候,進入if判斷,執行break跳出回圈,最后輸出105,


  • Continue陳述句
    在陳述句塊執行程序中終止當前回圈,跳出該次回圈,執行下一次回圈,
for num in range(10):
    if num % 2 == 0:
        print("even number:", num)
        continue
    print("number:",num)

輸出結果如下,當為偶數的時候continue跳出當前回圈,for回圈中只輸出偶數,

>>> 
even number: 0
number: 1
even number: 2
number: 3
even number: 4
number: 5
even number: 6
number: 7
even number: 8
number: 9
>>> 

  • pass陳述句
    pass陳述句是空陳述句,為了保持程式結構的完整性所使用的,
# 輸出 Python 的每個字母
for letter in 'Python':
   if letter == 'h':
      pass
      print('這是 pass 塊')
   print('當前字母 :', letter)
print("Good bye!")

輸出結果如下圖所示:

在這里插入圖片描述



4.嵌套回圈

while基本語法如下:

while expression:
   while expression:
      statement(s)
   statement(s)

for基本語法如下:

for iterating_var in sequence:
   for iterating_var in sequence:
      statements(s)
   statements(s)

下面以最簡單的冒泡排序演算法來補充回圈嵌套知識,冒泡排序是最常見到的排序演算法,也是很基礎的一種排序演算法,它的實作思想是:

  • 相鄰的兩個元素進行比較,然后把較大的元素放到后面(正向排序),在一輪比較完后最大的元素就放在了最后一個位置,像魚兒在水中吐的氣泡在上升的程序中不斷變大,
def bubble_sort(list):
    count = len(list)
    for i in range(count):
        for j in range(i + 1, count):
            if list[i] > list[j]:
                list[i], list[j] = list[j], list[i]
    return list

#排序演算法
list = [3, 91, 23, 14, 56, 9]
print("排序前:", list)
res = bubble_sort(list)
print("排序后:", res)

輸出結果如下:

在這里插入圖片描述

你可能會疑惑bubble_sort()是什么?其實它是一個自定義函式,下面我們馬上講解,



三.函式

當讀者需要完成特定功能的陳述句塊時,需要通過呼叫函式來完成對應的功能,函式分為無引數函式和有引數函式,當函式提供不同的引數時,可以實作對不同資料的處理,下面從自定義函式、系統自帶函式、第三方庫函式三個方面進行講解,

1.自定義函式

(1) 定義方法
為了簡化編程,提高代碼的復用性,可以自定義函式,函式定義如下:

def funtion_name([para1,para2...paraN]):
	statement1
    statement2
      ....
    [return value1,value2...valueN]

其中:

  • 定義函式需要使用def關鍵詞
  • function_name表示函式名,后面的冒號(:)不要忘記,并且縮進
  • [para1,para2…paraN]表示引數,可以省略,也可以多個引數
  • [return value1,value2…valueN]表示回傳值,可以無回傳值,也可以多個回傳值
  • 需要注意的是自定義函式有回傳值,主調函式就需要接受回傳的結果

函式呼叫時,形參被賦予真實的引數,然后執行函式體,并在函式結束呼叫時回傳結果,Return陳述句表示退出函式并回傳到函式被呼叫的地方,回傳值傳遞給呼叫程式,

首先來看一個無回傳值的求和函式fun1(),代碼如下:

#函式定義
def fun1(a,b):
    print(a,b)
    c = a + b
    print('sum =',c)

#函式呼叫
fun1(3,4)
# 3 4
# sum = 7

再來看一個包含多個引數回傳的計算器函式fun2(),代碼如下,return回傳五個結果,

#函式定義
def fun2(a,b):  
    print(a,b)
    X = a + b  
    Y = a - b  
    Z = a * b  
    M = a / b  
    N = a ** b  
    return X,Y,Z,M,N

#函式呼叫
a,b,c,d,e = fun2(4,3)  
print('the result are ',a,b,c,d,e)
re = fun2(2,10)  
print(re)

輸出結果如下,依次回傳加法、減法、乘法、除法、冪運算結果,

>>> 
4 3
the result are  7 1 12 1.3333333333333333 64
2 10
(12, -8, 20, 0.2, 1024)
>>> 

(2) 自定義函式引數含預定義
預設值是在自定義函式基礎上,對某些引數賦予預定義值,例如:

def fun3(a,b,c=10):
    print(a,b,c)
    n = a + b + c
    return n
  
print('result1 =',fun3(2,3))
print('result2 =',fun3(2,3,5))

第一次呼叫a為2,b為3,c為預定義值10,求和輸出15;第二次呼叫修改了預定義值c,賦值為5,求和即為2+3+5=10,

在這里插入圖片描述

注意:預定義值得引數不能先于無預定義值引數;同時,函式呼叫時,建議采用一對一賦值,也可以在函式呼叫中給出具體形參進行賦值,但需要注意的是在函式呼叫程序中(使用函式時),有預定義值的引數不能先于無預定義值引數被賦值,


2.常見內部庫函式

Python系統內部提供了一些庫函式供大家使用,這里主要介紹最常見的四個庫函式,即str字串庫函式、math資料庫函式、os作業系統庫函式、socket網路套接字庫函式,Python常見內部庫函式如下:

在這里插入圖片描述

下面代碼是這四個常見內部庫函式的具體用法,代碼如下:

# -*- coding:utf-8 -*-
#字串庫函式
str1 = "hello world"
print('計算字串長度:', len(str1))
str2 = str1.title()
print('首字母大寫標題轉換:', str2)
str3 = '12ab34ab56ab78ab'
print('字串替換:', str3.replace('ab',' '))

#數學庫函式
import math
print(math.pi)
num1 = math.cos(math.pi/3)
print('余弦定律:', num1)
num2 = pow(2,10)
print('冪次運算:', num2)
num3 = math.log10(1000)
print('求以10為底的對數:', num3)

#作業系統庫函式
import os
print('輸出當前使用平臺:', os.name)
path = os.getcwd()
print('獲取當前作業目錄', path)
os.system('taskkill /F /IM iexplore.exe') #關閉瀏覽器行程

#網路套接字庫函式
import socket
ip = socket.gethostbyname('www.baidu.com')
print('獲取百度ip地址', ip)

輸出結果如下圖所示,

在這里插入圖片描述



3.第三方庫函式

Python作為一門開源語言,它支持各種第三方提供的開源庫供我們使用,其使用第三方函式庫時的具體格式為:

  • module_name.method(parametes)

表示“第三方函式名.方法(引數)”,例如httplib\httplib2庫是針對HTTP和HTTPS的客戶端協議,使用httplib2庫函式之前,如果沒有安裝httplib2庫會報錯“ImportError: No module named httplib2”,如圖2.18所示,

在這里插入圖片描述

在Linux環境中,輸入命令“easy_install httplib2”可以實作自動安裝擴展包,Windows環境下需要安裝pip或easy_install工具,再呼叫命令執行安裝,在后續文章會講解pip安裝工具及用法,后面章節也會介紹各種第三方庫函式實作資料爬取和分析操作,



四.總結

無論如何,作者都希望這篇文章能給您普及一些Python知識,更希望您能跟著我一起寫代碼,一起進步,如果文章能給您的研究或專案提供一些微不足道的思路和幫助,就更欣慰了,作者最大的期望就是文章中的一些故事、話語、代碼或案例對您有所幫助,致那些努力奮斗的人,

最后,真誠地感謝您關注“娜璋之家”公眾號,感謝CSDN這么多年的陪伴,會一直堅持分享,希望我的文章能陪伴你成長,也希望在技術路上不斷前行,文章如果對你有幫助、有感悟,就是對我最好的回報,且看且珍惜!2020年8月18日建立的公眾號,再次感謝您的關注,也請幫忙宣傳下“娜璋之家”,哈哈~初來乍到,還請多多指教,

在這里插入圖片描述

遺憾,讓我們懂得完美,
逝去,讓我們不斷前行,
她夜色中的身姿是那么的美,

(By:娜璋之家 Eastmount 2020-09-09 夜于武漢 https://blog.csdn.net/Eastmount )

參考文獻如下:
[1] 作者書籍《Python網路資料爬取及分析從入門到精通》
[2] 作者博客:https://blog.csdn.net/Eastmount
[3] https://www.runoob.com/python/python-if-statement.html

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

標籤:python

上一篇:python爬蟲之網路請求

下一篇:python串列練習題

標籤雲
其他(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