【知識點】第1章:程序設計基本方法

文章目錄

  • 知識點整理
    • 計算機的概念
    • 程序設計語言
    • Python 語言概述
    • Python 語言開發環境配置
    • 程序的基本編寫方法
  • 練習題
    • 簡答題
    • 判斷題

知識點整理

計算機的概念

計算機的定義:計算機是根據指令操作數據的設備。

計算機的兩個基本特性:

  • 功能性:計算機硬件所依賴的集成電路規模按照摩爾定律以指數方式增長,計算機運行速度也接近幾何級數快速增加,計算機所能高效支撐的功能不斷豐富發展。
  • 可編程性:表達計算機可編程性的程序設計語言也在經歷從機器語言、匯編語言到高級語言的發展過程,并逐步朝著更接近自然語言的方向發展。

計算機技術發展的時代性總結為如下四個階段:

  1. 第一階段:1946年到1981年,“計算機系統結構階段”,圍繞計算機系統結構設計開展,1946年,以全球首臺數字計算機ENIAC誕生為標志,該階段計算需求催生出執行高效的C語言(1972)。
  2. 第二階段:1982年到2007年,“計算機網絡和視窗階段”。1982年,以全球子網間組網的TCP/IP網絡協議的標準化為標志,互聯網時代到來。網絡將不同類型系統互聯互通,催生了在多種操作系統上執行同一程序需求,Java語言誕生(1975),Windows操作系統催生了Visual Basic(1991)等視窗編程語言。
  3. 第三階段:2008年至2017年,“復雜信息系統階段”。以安卓開源移動操作系統的發布為起點,一批新的計算機概念和技術同時提出并推動了計算技術的升級:移動互聯網、多核眾核、云計算、可信計算、大數據、物聯網、互聯網+等。Python語言成為這個階段計算機系統的主流編程語言。
  4. 第四階段:約20年后未來的某個時期開始,“人工智能階段”。隨著深度學習、開源硬件、智能機器人、在線搜索引擎、量子計算等技術的發展,未來某個時期將會出現人工功能主導計算的技術階段。

程序設計語言

程序設計語言的執行方式包括:編譯執行解釋執行

程序設計語言是計算機能夠理解和識別用戶操作意圖的一種交互體系,它按照特定規則組織計算機指令,使計算機能夠自動進行各種運算處理。按照程序設計語言規則組織起來的一組計算機指令稱為計算機程序。程序設計語言也叫編程語言,包含如下三類:機器語言匯編語言高級語言

  • 編譯和解釋的區別:編譯是一次性的翻譯,一旦程序被編譯,不再需要編譯程序或源代碼。解釋則在每次程序運行時都需要解釋器和源代碼。
  • 編譯方式的優點:對于相同功能的源代碼,編譯所產生的目標代碼執行速度更快。目標代碼不需要編譯器就可以運行,使用更加靈活。
  • 解釋方式的優點:解釋執行需要保留源代碼,程序糾錯和維護方便。只要存在解釋器,源代碼可以在任何操作系統上運行,可移植性好。

Python 語言概述

Python語言是一個語法簡潔、跨平臺、可擴展的開源通用腳本語言。

Python是一門被廣泛使用的高級通用腳本編程語言,一些重要特點如下:

  • 語法簡潔。實現相同功能,Python語言的代碼行數僅相當于其他語言的1/10~1/5。
  • 與平臺無關。作為腳本語言,用該語言編寫的程序可以不經修改地實現跨平臺運行。
  • 粘性擴展。Python可以集成C、C++、Java等語言編寫的代碼,通過接口和函數庫的方式將它們“粘起來”。
  • 開源理念。Python語言開源的解釋器和函數庫對程序員具有強大的吸引力,故有較高的群眾基礎。
  • 通用靈活。作為一個通用編程語言,可用于編寫各領域的應用程序,這為該語法提供了廣闊的應用空間,可用于科學計算、數據處理、人工智能、機器人等領域。
  • 強制可讀。Python語言通過強制縮進(類似段落的首行縮進)來體現語句間的邏輯關系,顯著提高了程序的可讀性,進而增加了Python程序的可維護性。
  • 支持中文。Python3.x解釋器采用UTF-8編碼表達所有字符信息,處理中文時更加靈活。
  • 模式多樣。盡管Python3.x解釋器內部采用面向對象方式實現,但Python語法層面卻同時支持面向對象和面向過程兩種編程方式。
  • 類庫豐富。Python解釋器提供了幾百個內置類和函數庫,此外,世界各地程序員通過開源社區貢獻了十幾萬個第三方函數庫,幾乎覆蓋了計算機技術的各個領域,編寫Python程序可以大量利用已有的內置或第三方代碼,具備良好的編程生態。

Python 語言開發環境配置

運行Python程序有兩種方式:文件式交互式

程序的基本編寫方法

每個程序都有統一的運算模式,即輸入數據、處理數據和輸出數據,這種樸素運算模式形成了程序的基本編寫方法,即IPO方法(Input、Process、Output)

輸入是一個程序的開始。程序要處理的數據有多種來源,因此形成了多種輸入方式。包括文件輸入、網絡輸入、控制臺輸入、交互界面輸入、隨機數據輸入、內部參數輸入等。

  1. 文件輸入:將文件作為程序輸入來源。獲得文件控制權后,根據文件格式解析內部具體數據。
  2. 網絡輸入:將互聯網上的數據作為輸入來源。使用網絡數據需要明確網絡協議和網絡接口。
  3. 控制臺輸入:將程序使用者輸入的信息作為輸入來源。
  4. 交互界面輸入:通過提供一個圖形交互界面從用戶處獲得輸入來源,鼠標事件、文本框等…
  5. 隨機數據輸入:將隨機數作為程序輸入,需要使用特定的隨機數生成器程序。
  6. 內部參數輸入:以程序內部定義的初始化變量為輸入,盡管程序看似沒有從外部獲得輸入,但程序執行之前的初始化過程為程序賦予了執行所需的數據。

處理是程序對輸入數據進行計算產生輸出結果的過程。計算問題的處理方法統稱為“算法”,它是程序最重要的組成部分。

輸出是展示運算成果的方式。程序的輸出方式包括控制臺輸出、圖形輸出、文件輸出、網絡輸出、操作系統內部變量輸出等。

  1. 控制臺輸出:以計算機屏幕為輸出目標,通過程序運行環境中的命令行打印輸出結果。
  2. 圖形輸出:在計算機中啟動獨立的圖形輸出窗口。
  3. 文件輸出:以生成新的文件或修改已有文件方式輸出運行結果,這是程序常用的輸出方式。
  4. 網絡輸出:以訪問網絡接口方式輸出數據。
  5. 操作系統內部變量輸出:指程序將運行結果輸出到系統內部變量中,這些變量包括管道、線程、信號量等。

練習題

簡答題

人類為何需要計算?

人類在認識自然的過程中,為了認識自然現象、分析自然規律,需要進行量化計算。人類社會對有限資源的分配、對人類活動的有效管理,需要進行優化計算。人類探索思維空間的數學、邏輯和哲學問題,需要推理演算。

計算機一定是電子的?

判斷一個計算設備是否屬于計算機并不靠其制造材質,計算機不一定是電子的。例如,計算機前沿領域的光計算機、量子計算機、超導計算機、生物計算機等新形態計算機都不是建立在電子學基礎上,但都表達了計算機的概念。

你認為學習計算機編程的原因是什么?

  1. 編程能夠訓練思維。編程體現了一種抽象交互關系、形式化方法執行的思維模式,稱為“計算思維”,是區別于邏輯思維和實證思維的第三種思維模式。
  2. 編程是一個求解問題的過程,首先需要分析問題,抽象內容之間的交互關系,設計利用計算機求解問題的確定性方法,進而通過編寫和調試代碼解決問題,這是從抽象到解決問題的完整過程。
  3. 編程能夠增進認識。編寫程序不單是求解計算題,它要求作者不僅要思考解決問題的方法,更要思考如何讓程序有更好的用戶體驗、更高的執行效率和更有趣的展示效果,能夠幫助程序作者加深對用戶行為以及社會和文化的認識。
  4. 編程能夠帶來樂趣。編程能夠提供展示自己思想和能力的舞臺,將所思所想變為現實。
  5. 編程能夠提高效率。掌握一些編程技術能夠提高工作、生活和學習效率。
  6. 編程帶來就業機會。程序員是信息時代最重要的工作崗位之一,國內外對程序員的缺口都在百萬級及以上規模,就業前景廣闊。

你認為 Python 語言有哪些特點?

言之有理即可。

關于程序的基本編寫方法(IPO方法),你如何理解?

言之有理即可。

判斷題

  1. 計算機能夠理解人類語言,人類語言適合描述復雜算法,不會產生語義歧義。(×)
  2. 高級編程語言相較于低級編程語言更接近自然語言。(√)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85038.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85038.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85038.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

const ‘不可變’到底是值不變還是地址不變

const的基礎規則 聲明時必須初始化? const a; // ? 報錯:Missing initializer in const declaration const b 10; // ? 正確塊級作用域?(const 的作用域僅限于聲明它的代碼塊) if (true) {const x 100; } console.log(x); // ? 報錯…

Netty 實戰篇:為自研 RPC 框架加入異步調用與 Future 支持

我們在上篇實現了一個輕量級 RPC 框架,現在要進一步優化 —— 加入異步響應支持,讓 RPC 通信變得真正高效、非阻塞、支持并發。 一、為什么需要異步調用? 上篇的 RPC 框架是“同步阻塞”的: 每次發送請求后,必須等待服…

for(auto a:b)和for(auto a:b)的區別

#include<iostream> using namespace std; int main() {string s( "hello world" );for (auto c:s)c t ;cout<<s<<endl; //結果為hello worldfor (auto &c:s)c t ;cout<<s<<endl; //結果為ttttttttttt }for(auto a:b)中b為一…

超級對話2:大跨界且大綜合的學問融智學應用場景述評(不同第三方的回應)之二

摘要&#xff1a;《人機協同文明升維行動框架》提出以HIAICI/W公式推動認知革命&#xff0c;構建三大落地場景&#xff1a;1&#xff09;低成本認知增強神經接口實現300%學習效率提升&#xff1b;2&#xff09;全球學科活動化閃電戰快速轉化知識體系&#xff1b;3&#xff09;人…

多方法解決MNIST數字識別

全連接層 import torch from torchvision import datasets, transforms import torch.nn as nn import torch.optim as optim from tqdm import tqdm # 用于進度條顯示 import os# 定義數據預處理(標準化+Tensor轉換) transform = transforms.Compose([transforms.ToTensor…

安裝 Node.js 和配置 cnpm 鏡像源

一、安裝 Node.js 方式一&#xff1a;官網下載&#xff08;適合所有系統&#xff09; 訪問 Node.js 官網 推薦選擇 LTS&#xff08;長期支持&#xff09;版本&#xff0c;點擊下載安裝包。 根據系統提示一步步完成安裝。 方式二&#xff1a;通過包管理器安裝&#xff08;建…

vue 自定義組件的事件綁定

基本知識點 &#x1f3af;什么是自定義事件 自定義事件是子組件向父組件發送消息的機制&#xff0c;通常用于通知父組件發生了某些行為或狀態變化。 &#x1f4cc; 基本語法 子組件觸發事件&#xff08;$emit&#xff09; this.$emit(事件名, 參數);或在 const emit de…

進程同步機制-信號量機制-記錄型信號量機制中的的wait和signal操作

wait和signal是記錄型信號量機制中用于實現進程同步與互斥的兩個重要操作&#xff0c; wait 操作 wait(semaphores *S) {S->value --;if (S->value<0) block(S->list) }請求資源&#xff1a;S->value --; 這一步表示進程請求一個單位的資源&#xff0c;將信號…

sd webui 安裝sd-webui-TemporalKit 加載報錯解決辦法

ModuleNotFoundError: No module named moviepy.editer 報錯內容類似上面截圖&#xff0c;我的已經解決&#xff0c;暫時無法截圖了 處理方法&#xff1a; 重點說明&#xff1a;插件目錄必須是TemporalKit&#xff0c;不能更改 進入到安裝目錄&#xff1a;extensions\Tempor…

decimal.js庫處理js浮點數精度誤差問題

1、經常遇到前端計算金額的時候出現精度誤差問題&#xff0c;導致前后端計算的金額不一致導致校驗過不去的情況&#xff0c;相信有不少人寫過Math.floor(e*100)/100來實現保留2位小數&#xff0c;但是這么寫就會出現上面的精度問題。怎么解決呢&#xff1f;這里使用的是decimal…

如何將 WSL 的 Ubuntu-24.04 遷移到其他電腦

在使用 Windows Subsystem for Linux (WSL) 時&#xff0c;我們可能會遇到需要將現有的 WSL 環境遷移到其他電腦的情況。無論是為了備份、更換設備&#xff0c;還是在不同電腦之間共享開發環境&#xff0c;掌握遷移 WSL 子系統的方法都是非常有用的。本文將以 Ubuntu-24.04 為例…

RISCV——內核及匯編

RISCV——內核及匯編 小狼http://blog.csdn.net/xiaolangyangyang 1、寄存器組&#xff08;ABI&#xff09; 2、異常及中斷 XV6 trap&#xff08;二&#xff09;RISCV中斷異常處理/定時器中斷 mie&#xff1a;中斷開關mip&#xff1a;中斷狀態mstatus.mie&#xff1a;全局中斷…

算法日記32:埃式篩、gcd和lcm、快速冪、乘法逆元

一、埃式篩&#xff08;計算質數&#xff09; 1.1、概念 1.1.1、在傳統的計算質數中&#xff0c;我們采用單點判斷&#xff0c;即判斷(2~sqrt(n))是否存在不合法元素&#xff0c;若存在則判否&#xff0c;否則判是 1.1.2、假設&#xff0c;此時我們需要求1~1000的所有質數&am…

使用 mysqldump 獲取 MySQL 表的完整創建 DDL

要獲取 MySQL 中某個表的完整創建 DDL&#xff08;僅結構&#xff0c;不含數據&#xff09;&#xff0c;可以使用 mysqldump 工具的以下命令&#xff1a; 基本命令格式 bash mysqldump -h [主機名] -u [用戶名] -p --no-data --single-transaction --routines --triggers --…

Debian 系統 Python 開發全解析:從環境搭建到項目實戰

Debian 系統 Python 開發全解析:從環境搭建到項目實戰 在當今數字化時代,Python 憑借其簡潔易讀的語法和強大的功能,成為了最受歡迎的編程語言之一。Debian 作為一款穩定、安全且開源的 Linux 操作系統,為 Python 開發提供了理想的環境。本文將詳細介紹在 Debian 系統上進…

實時技術對比:SSE vs WebSocket vs Long Polling

早期網站僅展示靜態內容&#xff0c;而如今我們更期望&#xff1a;實時更新、即時聊天、通知推送和動態儀表盤。 那么要如何實現實時的用戶體驗呢&#xff1f;三大經典技術各顯神通&#xff1a; ? SSE&#xff08;Server-Sent Events&#xff09;&#xff1a;輕量級單向數據…

【前端】es6新特性全解

第一章 簡介 1.1 ES6概述 1.1.1 ES6定義與發展歷程 1. ES6 定義 ES6 全稱 ECMAScript 6.0&#xff0c;它是 JavaScript 語言的下一代標準&#xff0c;對 JavaScript 語言進行了許多增強和擴展&#xff0c;帶來了更簡潔、更強大的語法特性。可以把 ES6 想象成是 JavaScript …

nlp中的頻率就是權重嗎

&#x1f522; 一、“頻率”是什么&#xff1f; 在 NLP 中&#xff0c;**詞頻&#xff08;frequency&#xff09;**通常指的是&#xff1a; 某個單詞或 token 在語料庫中出現的次數&#xff08;或比例&#xff09; 舉例&#xff1a; "The cat sat on the mat. The cat i…

多模態大語言模型arxiv論文略讀(九十八)

Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ?? 論文標題&#xff1a;Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ?? 論文作者&#xff1a;Ziyuan Huang, Kaixiang Ji, Biao Gong, Zhiwu Qing, Qinglong Zhang, Kecheng Zhe…

WEB安全--RCE--webshell HIDS bypass4

繼WEB安全--RCE--webshell HIDS bypass3的補充&#xff1a; 十三、時間開關 webshell&#xff1a; <?php ini_set("display_errors",1); function foo($test, $bar FSYSTEM) {echo $test . $bar; } $function new ReflectionFunction(foo); $q new ParseEr…