整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          「測試開發(fā)基礎(chǔ)知識-HTML」表格標(biāo)簽,不得不說的重

          「測試開發(fā)基礎(chǔ)知識-HTML」表格標(biāo)簽,不得不說的重點

          續(xù)一周沒怎么更新了,今天我們繼續(xù)HTML的學(xué)習(xí),表格標(biāo)簽。表格是實際開發(fā)中常用的一種標(biāo)簽類型,會說到表格標(biāo)簽的主要作用和基本語法。

          主要作用: 表格主要用于顯示、展示數(shù)據(jù),因為它可以讓數(shù)據(jù)展示的非常規(guī)整,可讀性非常好,特別是后臺展示數(shù)據(jù)的時候,能夠熟練運用表格非常重要。一個清爽簡約的表格可以把復(fù)雜的數(shù)據(jù)表現(xiàn)的很簡單。表格不是用來布局頁面的,而是用來展示數(shù)據(jù)的。

          表格的基本語法: <table><tr><td></td></tr></table>

          <table></table>用來定義表格標(biāo)簽

          <tr></tr>用于定義表格中的行,嵌套在<table>標(biāo)簽中使用

          <td></td>用于定義表格中的單元格,嵌套在<tr>標(biāo)簽中使用,字母td指表格數(shù)據(jù)(table data),即數(shù)據(jù)單元格的內(nèi)容。

          我們來展示一個例子,比如 數(shù)據(jù)庫中有三個字段,分別為 姓名 性別和年齡,如果想用前端將這三個字段的數(shù)據(jù)展示出來,應(yīng)該怎么操作呢?


          先看效果:

          然后我們看下代碼:

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>20210829---</title>

          </head>

          <body>

          <table>

          <tr> <td>姓名</td> <td>性別</td> <td>年齡</td> </tr>

          </table>

          </body>

          </html>

          這次開始使用vs code來編輯代碼了,感覺比sublime line高級一些,但是相對的也麻煩點。可以看到,在前端頁面展示了 姓名、性別和年齡。然后我們添加一行數(shù)據(jù),看效果:

          民族英雄黃飛鴻如果還活著,應(yīng)該也是一位非常高壽的宗師了。多加幾個數(shù)據(jù)

          讓我們看看代碼有什么不同

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>20210829---</title>

          </head>

          <body>

          <table>

          <tr> <td>姓名</td> <td>性別</td> <td>年齡</td> </tr>

          <tr> <td>黃飛鴻</td> <td></td> <td>188</td> </tr>

          <!--再多創(chuàng)建幾個數(shù)據(jù)-->>

          <tr><td>鬼腳七</td> <td></td> <td>186</td> </tr>

          <tr><td>梁寬</td> <td></td> <td>33</td> </tr>

          </table>

          </body>

          </html>

          可以看到,就是將之前的數(shù)據(jù)進(jìn)行了復(fù)制而已。


          接著我們說下表頭單元格標(biāo)簽,一般表頭單元格位于表頭的第一行或第一列,表頭單元格里面的文本內(nèi)容,加粗居中表示。

          <th>標(biāo)簽表示HTML表格的表頭部分,table head的縮寫

          我們先來看下效果:

          再看下對應(yīng)的代碼:

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>20210829---</title>

          </head>

          <body>

          <table>

          <!--HTML表格的表頭標(biāo)簽,內(nèi)容加粗居中展示-->>

          <tr> <th>姓名</th> <th>性別</th> <th>年齡</th> </tr>

          <tr> <td>黃飛鴻</td> <td></td> <td>188</td> </tr>

          <!--再多創(chuàng)建幾個數(shù)據(jù)-->>

          <tr><td>鬼腳七</td> <td></td> <td>186</td> </tr>

          <tr><td>梁寬</td> <td></td> <td>33</td> </tr>

          </table>

          </body>

          </html>

          就是將表格表頭那一行的<td>都換成了<th>,可以看到表頭每個字段都已經(jīng)居中并且加粗了。


          最后我們說下表格的屬性,其實表格標(biāo)簽屬性這部分用的不多,一般都是用css樣式來設(shè)置。例如表格的邊框、大小等。我們需要關(guān)注的表格屬性目的,有2點:

          1. 記住英文顯示名稱,之后使用css樣式會用到
          2. 直觀感受表格的外觀狀態(tài)

          align 屬性值: left right center 對應(yīng)表格相對周圍元素的對齊方式

          border 屬性值 1或"" (空) 規(guī)定表格單元是否有邊框,默認(rèn)為空,表示沒有邊框

          cellpadding 像素值 規(guī)定單元邊沿與其內(nèi)容之間的空白,默認(rèn)1像素

          cellspacing 像素值 規(guī)定單元格之間的空白,默認(rèn)1像素

          width 像素值或百分比 規(guī)定表格的寬度


          我們來看下效果:

          來看下代碼:

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>20210829---</title>

          </head>

          <body>

          <table align="center" border=1 cellpadding=1 cellspacing=1 width=500>

          <!--HTML表格的表頭標(biāo)簽,內(nèi)容加粗居中展示-->>

          <tr> <th>姓名</th> <th>性別</th> <th>年齡</th> </tr>

          <tr> <td>黃飛鴻</td> <td></td> <td>188</td> </tr>

          <!--再多創(chuàng)建幾個數(shù)據(jù)-->>

          <tr><td>鬼腳七</td> <td></td> <td>186</td> </tr>

          <tr><td>梁寬</td> <td></td> <td>33</td> </tr>

          </table>

          </body>

          </html>

          記住,屬性都是在table處添加和修改的,因為我們是對整個table的設(shè)置值。

          好的,今天就先到這里了,大家周末愉快

          T ___ InformationTechnology 信息技術(shù)

          POP ___ Procedure-Oriented Programming 面向過程編程

          OOA ___ Object Oriented Analysis 面對對象分析

          OOD ___ Object Oriented Design 面對對象設(shè)計

          OOP ___ Object Oriented Programming 面向?qū)ο缶幊?/span>

          IOP ___ Interface-Oriented Programming 面向接口編程

          AOP ___ Aspect Oriented Programming 面向切面編程

          SOA ___ service-oriented architecture 面向服務(wù)的體系結(jié)構(gòu)

          IDE ___ Integrated Development Environment 集成開發(fā)環(huán)境

          GUI ___ Graphical User Interface 圖形用戶界面

          API ___ Application Programming Interface 應(yīng)用編程接口

          COM ___ Component Object Model 組件對象模型

          dll ___ dynamic linked library 動態(tài)鏈接庫

          GDI ___ Graphics Device Interface 圖形設(shè)備接口

          GUI ___ Graphics Unser Interface 圖形用戶界面

          Big O notation ___ Order 階,Order of Growth, lower- order, high - order

          DOS ___Disc Operating System 磁盤操作系統(tǒng)

          UML ___ nified Modeling Language統(tǒng)一建模語言

          MVC ___ Model–view–controller 模型、視圖和控制器,MVC 模式的目的是實現(xiàn)一種動態(tài)的程序設(shè)計。

          .net ___ NET Framework .Net框架,是由微軟開發(fā),一個致力于敏捷軟件開發(fā)(Agile software development)、快速應(yīng)用開發(fā)(Rapid application development)、平臺無關(guān)性和網(wǎng)絡(luò)透明化的軟件開發(fā)平臺。.NET框架是以一種采用系統(tǒng)虛擬機(jī)運行的編程平臺,以通用語言運行庫(Common Language Runtime)為基礎(chǔ),支持多種語言(C#、VB、C++、Python等)的開發(fā)。NET也為應(yīng)用程序接口(API)提供了新功能和開發(fā)工具。這些革新使得程序設(shè)計員可以同時進(jìn)行Windows應(yīng)用軟件和網(wǎng)絡(luò)應(yīng)用軟件以及組件和服務(wù)(web服務(wù))的開發(fā)。.NET提供了一個新的反射性的且面向?qū)ο蟪绦蛟O(shè)計編程接口。.NET設(shè)計得足夠通用化從而使許多不同高級語言都得以被匯集。.NET Framework中的所有語言都提供基類庫(BCL)。

          目錄:

          0 匯編

          1 C

          2 C++

          3 VC里面的一些類型定義和縮寫

          4 Java

          5 數(shù)據(jù)結(jié)構(gòu)與算法

          6 HTML、CSS、Javascript

          7 數(shù)據(jù)庫相關(guān)

          8 網(wǎng)絡(luò)和服務(wù)端編程相關(guān)

          9 硬件相關(guān)

          10 others

          11 附

          0 匯編

          lea ___ Load effective address

          je ___ Jump if equal

          leave—Leave function

          mov rsp, rbp

          pop rbp

          jmp ___ Jump

          jne ___ Jump Not Equal

          jng ___ Jump Not greater than

          jnl ___ Jump Not less than

          jo ___ Jump Overflow

          jnc ___ Jump No carry

          inc ___ Increment Adds 1 to a variable.

          BSS ___ Block Started by Symbol, Better Save Space

          1 C

          typedef ___ type definition

          malloc() ___ memory allocate

          atof() ___ anscii to float

          seekp() ___ seek put pointer

          seekg() ___ seek get pointer

          strpbrk() ___ string pointer break

          strcspn() ___ string complement span

          isxdigit() ___ is hexadecimal digit

          strtok() ___ string to tokenize

          strrchr() ___ string right character

          isalnurn() ___ is alpha and numeric?

          isalpha() ___ is alphabetic?

          #ifndef ___ if not defined

          gdb___ GNU Debugger

          2 C++

          RAII ___ Resource Acquisition Is Initialization 資源獲取即初始化

          RTTI ___ Run-Time Type Identification 運行時類型識別

          STL ___ Standard Template Library

          ios::app ___ appends: Always appends at the end when writing

          ios::ate ___ at end: Positions at the end of the file after opening

          ios::trunc ___ truncate: Removes the former file contents

          IOC ___ Inversion of Control 控制反轉(zhuǎn),是面向?qū)ο缶幊讨械囊环N設(shè)計原則,可以用來減低計算機(jī)代碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI),還有一種方式叫“依賴查找”(Dependency Lookup)。通過控制反轉(zhuǎn),對象在被創(chuàng)建的時候,由一個調(diào)控系統(tǒng)內(nèi)所有對象的外界實體,將其所依賴的對象的引用傳遞給它。也可以說,依賴被注入到對象中。

          deque ___ double ended queue

          POD ___ Plain Old Data 傳統(tǒng)的C風(fēng)格的struct叫做POD對象。其二進(jìn)制內(nèi)容是可以隨便復(fù)制的,在任何地方,只要其二進(jìn)制內(nèi)容在,就能還原出正確無誤的POD對象。memcpy,memset有很強(qiáng)的限制,僅能用于POD結(jié)構(gòu),不能作用于stl容器或者帶有虛函數(shù)的類。帶虛函數(shù)的類對象會有一個虛函數(shù)表的指針,memcpy將破壞該指針指向。

          3VC里面的一些類型定義和縮寫

          MFC ___ Microsoft Foundation Classes 微軟基礎(chǔ)類庫,是一個微軟公司提供的類庫(class libraries),以C++類的形式封裝了Windows的API,并且包含一個應(yīng)用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內(nèi)建控件和組件的封裝類。

          WPF___ Windows Presentation Foundation 微軟推出的基于Windows Vista的用戶界面框架,屬于.NET Framework 3.0的一部分。它提供了統(tǒng)一的編程模型、語言和框架,真正做到了分離界面設(shè)計人員與開發(fā)人員的工作;同時它提供了全新的多媒體交互用戶圖形界面。

          LPCTSTR 是Win32 自定義數(shù)據(jù)類型, 是以null 結(jié)尾的字符串。

          void CWnd::SetWindowText(LPCTSTR lpszString);

          LP 表示長指針,在Win32 系統(tǒng)中指針沒有長短之分,LP 和P 等同。
          C 表示const 常量。
          T 表示TCHAR。
          STR 表示字符串, 等同于const TCHAR *。
          sz: string terminated with zero

          由于字符集分為ANSI 和Unicode 兩種,對應(yīng)char 和wchar_t 兩種字符類型,TCHAR 是個宏定義,它根據(jù)開發(fā)環(huán)境的設(shè)置不同自動替換為char 或wchar_t, 使用TCHAR可以增強(qiáng)程序的可移植。

          cbWndExtra ___ count of byte

          GetDeviceCaps ___ Get Device's Capacities

          WM_NCHITTEST ___ Not Client

          DefWindowProc ___ Default

          WM_TIMER ___ Windows Message

          CBN_SELCHANGE ___ comboBox Notify

          variable nam-ing notation:

          b Boolean (true or false)

          w Word, 16-bit integer

          i Integer, 16-bit integer (conflicts with w )

          n Short, 16-bit integer (conflicts with w )

          n Near pointer (ambiguous, can be used for " short ")

          p Pointer

          d Double, 32-bit integer

          dw Double word, 32-bit integer (conflicts with d)

          l Long, 32-bit integer (conflicts with d )

          fn Function (or pointer to function)

          g Global

          s String

          sz String terminated with zero (conflicts with s )

          c character

          by byte (unsigned character)

          h Window handle

          hn Window handle (conflicts with h )

          4 Java

          JDK ____ Java Development Kit, The software for consumers who want to run Java programs.

          JRE ___ Java Runtime Environment, The software for running Java programs on servers.

          SE ___ Standard Edition, The Java platform for use on desktops and simple server applications.

          EE ___ Enterprise Edition, The Java platform for complex server applications.

          ME ___ Micro Edition, The Java platform for use on cell phones and other small devices.

          AWT ___ Abstract Windowing Toolkit 抽象窗口工具包

          JAR ___ Java ARchive

          GC ___ Garbage Collection 一種自動的內(nèi)存管理機(jī)制。

          5 數(shù)據(jù)結(jié)構(gòu)與算法

          FIFO ___ First Input First Output,先入先出(隊列)

          LIFO ___ last in,first out,后進(jìn)先出(棧)

          BST ___ binary search tree,二叉搜索樹

          DFS ___Deepness First Search,深度優(yōu)先搜索

          BFS ___ Breadth-First Search,廣度優(yōu)先搜索算法

          DP ___ Dynamic Programming,動態(tài)規(guī)劃算法,一種實現(xiàn)記憶搜索的分治法

          AVL trees ___ were invented in 1962 by two Russian computer scientists, G. M. Adelson-Velsky and E. M. Landis. An AVL tree is a well-balanced binary tree. In an AVL tree, the difference between the heights of two subtrees for every node is 0 or 1.

          KMP algorithm ___ The Knuth-Morris-Pratt algorithm

          6 HTML、CSS、Javascript

          HTTP ___ HyperText Transfer Protocol 超文本傳輸協(xié)議,是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。HTTP是萬維網(wǎng)的數(shù)據(jù)通信的基礎(chǔ)。

          CSS ___ Cascading Style Sheet 級聯(lián)樣式表,是用來進(jìn)行網(wǎng)頁風(fēng)格設(shè)計的。比如,如果想讓鏈接字未點擊時是藍(lán)色的,當(dāng)鼠標(biāo)移上去后字變成紅色的且有下劃線,這就是一種風(fēng)格。通過設(shè)立樣式表,可以統(tǒng)一地控制HMTL中各標(biāo)志的顯示屬性。級聯(lián)樣式表可以使人更能有效地控制網(wǎng)頁外觀。使用級聯(lián)樣式表,可以擴(kuò)充精確指定網(wǎng)頁元素位置,外觀以及創(chuàng)建特殊效果的能力。

          AJAX ___ Asynchronous JavaScript and XML”(異步的 JavaScript 與 XML 技術(shù)),指的是一套綜合了多項技術(shù)的瀏覽器端網(wǎng)頁開發(fā)技術(shù)。

          JSON ___ JavaScript Object Notation 一種輕量級的數(shù)據(jù)交換語言,以文字為基礎(chǔ),且易于讓人閱讀。盡管 JSON 是 Javascript 的一個子集,但JSON是獨立于語言的文本格式,并且采用了類似于 C語言 家族的一些習(xí)慣。

          XML ___ eXtensible Markup Language 可擴(kuò)展標(biāo)記語言,是一種標(biāo)記語言。標(biāo)記指計算機(jī)所能理解的信息符號,通過此種標(biāo)記,計算機(jī)之間可以處理包含各種信息的文章等。如何定義這些標(biāo)記,既可以選擇國際通用的標(biāo)記語言,比如HTML,也可以使用像XML這樣由相關(guān)人士自由決定的標(biāo)記語言,這就是語言的可擴(kuò)展性。XML是從標(biāo)準(zhǔn)通用標(biāo)記語言(SGML)中簡化修改出來的。它主要用到的有可擴(kuò)展標(biāo)記語言、可擴(kuò)展樣式語言(XSL)、XBRL和XPath等。

          ASP ___ Active Server Page 動態(tài)服務(wù)器頁面,是微軟公司開發(fā)的代替CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫和其它程序進(jìn)行交互,是一種簡單、方便的編程工具,運行于 IIS 之中的程序。ASP的網(wǎng)頁文件的格式是.asp,常用于各種動態(tài)網(wǎng)站中。

          DOM ___ Document Object Model 文檔目標(biāo)模型

          NaN ___ Not a Number

          <a></a> ___ anchor

          <h3></h3> ___ header level 3

          <p></p> ___ paragraph

          <tr></tr> ___ table row

          <th></th> ___ table head

          <td></td> ___ table data

          7 數(shù)據(jù)庫相關(guān)

          DML ___ Data Manipulation Language 數(shù)據(jù)操縱語言 SQL 語言中,負(fù)責(zé)對數(shù)據(jù)庫對象運行數(shù)據(jù)訪問工作的指令集,以 INSERT、UPDATE、DELETE 三種指令為核心,分別代表插入、更新與刪除,是開發(fā)以數(shù)據(jù)為中心的應(yīng)用程序必定會使用到的指令,因此有很多開發(fā)人員都把加上SQL的SELECT語句的四大指令以“CRUD”來稱呼

          ADO ___ ActiveX Data Objects) 是一個用于存取數(shù)據(jù)源的COM組件。它提供了編程語言和統(tǒng)一數(shù)據(jù)訪問方式OLE DB的一個中間層。允許開發(fā)人員編寫訪問數(shù)據(jù)的代碼而不用關(guān)心數(shù)據(jù)庫是如何實現(xiàn)的,而只用關(guān)心到數(shù)據(jù)庫的連接。

          SQL ___ Structured Query Language 結(jié)構(gòu)化查詢語言,是一種特定目的程序語言,用于管理關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),或在關(guān)系流數(shù)據(jù)管理系統(tǒng)(RDSMS)中進(jìn)行流處理。

          NoSQL 是對不同于傳統(tǒng)的關(guān)系數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)稱。

          8 網(wǎng)絡(luò)和服務(wù)端編程相關(guān)

          DNS ___ Domain Name System 域名系統(tǒng),是互聯(lián)網(wǎng)的一項服務(wù)。它作為將域名和IP地址相互映射的一個分布式數(shù)據(jù)庫,能夠使人更方便地訪問互聯(lián)網(wǎng)。DNS使用TCP和UDP端口53。當(dāng)前,對于每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。

          CGI ___ Common Gateway Interface 通用網(wǎng)關(guān)接口,是一個Web服務(wù)器主機(jī)提供信息服務(wù)的標(biāo)準(zhǔn)接口。通過CGI接口,Web服務(wù)器就能夠獲取客戶端提交的信息,轉(zhuǎn)交給服務(wù)器端的CGI程序進(jìn)行處理,最后返回結(jié)果給客戶端。組成CGI通信系統(tǒng)的是兩部分:一部分是html頁面,就是在用戶端瀏覽器上顯示的頁面。另一部分則是運行在服務(wù)器上的Cgi程序。servlet是CGI替代品。

          IIS ___ Internet Information Services 互聯(lián)網(wǎng)信息服務(wù),是由微軟公司提供的基于運行Microsoft Windows的互聯(lián)網(wǎng)基本服務(wù)。最初是Windows NT版本的可選包,隨后內(nèi)置在Windows 2000、Windows XP Professional和Windows Server 2003一起發(fā)行,但在Windows XP Home版本上并沒有IIS。

          C/S ___ Client/Server 客戶端-服務(wù)器架構(gòu),是一種網(wǎng)絡(luò)架構(gòu),它把客戶端 (Client) (通常是一個采用圖形用戶界面的程序)與服務(wù)器 (Server) 區(qū)分開來。每一個客戶端軟件的實例都可以向一個服務(wù)器或應(yīng)用程序服務(wù)器發(fā)出請求。有很多不同類型的服務(wù)器,例如文件服務(wù)器、游戲服務(wù)器等。

          FTP ___ File Transfer Protocol 文件傳輸協(xié)議

          ADSL ___ Asymetrical Digital Subscriber Line 非對稱數(shù)字用戶線路

          ARP ___ Address resolution Protocol 地址解析協(xié)議

          ICMP ___ Internet Control and Message Protocol Internet控制消息協(xié)議

          ICP ___ Internet Content Provider 互聯(lián)網(wǎng)內(nèi)容供應(yīng)商

          IMAP ___ Internet message Access Protocol 報文存取協(xié)議

          IP ___ Internet Protocol 網(wǎng)際協(xié)議

          LAN ___ Local Area Network 局域網(wǎng)

          PING ___ Packet Internet Grable

          PPPOE ___ Point to Point Protocol Over Ethernet

          POP3 ___ Post Office Protocol Version 3

          9 硬件相關(guān)

          CPU ___ Central Process Unit 中央處理單元

          ALU ___ arithmetic and logic unit 算術(shù)邏輯單元

          BIOS ___ Basic Input Output System 基本輸入輸出系統(tǒng)

          ROM ___ Rread_Only Memory 只讀存儲器

          EPROM ___ erasable programmable ROM 可擦寫可編程ROM

          SRAM ____ Static Ramdom Access Memory 靜態(tài)隨機(jī)存儲器

          GPU Graphic Processing Unit

          PCI ___ Peripheral component Interconnection 互聯(lián)外圍設(shè)備

          DPI Dots Per Inch 每英寸點數(shù)

          10 others

          JVM ___ Java Virtual Machine Java 虛擬機(jī),是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機(jī),是通過在實際的計算機(jī)上仿真模擬各種計算機(jī)功能來實現(xiàn)的。Java虛擬機(jī)包括一套字節(jié)碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域。 JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使Java程序只需生成在Java虛擬機(jī)上運行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。JVM在執(zhí)行字節(jié)碼時,實際上最終還是把字節(jié)碼解釋成具體平臺上的機(jī)器指令執(zhí)行。編譯虛擬機(jī)的指令集與編譯微處理器的指令集非常類似。

          RA ___ Requirement Analysis 需求分析

          IEEE___ Institute of Electrical and Electronic Engineer 電子電氣工程師協(xié)會

          GIF ___ Graphics Interchange Format

          JPEG ___ Joint Photographic Expert Group 一個靜態(tài)圖壓縮標(biāo)準(zhǔn)

          MP3 ___ MPEG Audio Layer3

          MPEG ___ Moving Picture Expert Group 動態(tài)圖像專家

          OCR Optical Character Recognition 光學(xué)字符識別

          OLE ObjectLinking and Embedding 對象連接與嵌入,簡稱OLE技術(shù)

          PDF ___ Portal Document Format 可移植文檔格式

          PHP ___ Hypertext Proprocessor 超文本預(yù)處理器

          PNP ___ Plug and Play

          POST ____ Power On Self Test

          11 附:

          11.1 英文縮寫搜索

          http://m.shortof.com/

          11.2 一些英文縮寫

          縮寫

          全稱

          addr

          Address

          adm

          Administrator

          app

          Application

          arg

          Argument

          asm

          assemble

          asyn

          asynchronization

          avg

          average

          DB

          Database

          bk

          back

          bmp

          Bitmap

          btn

          Button

          buf

          Buffer

          calc

          Calculate

          char

          Character

          chg

          Change

          clk

          Click

          clr

          color

          cmd

          Command

          cmp

          Compare

          col

          Column

          coord

          coordinates

          cpy

          copy

          ctl / ctrl

          Control

          cur

          Current

          cyl

          Cylinder

          dbg

          Debug

          dbl

          Double

          dec

          Decrease

          def

          default

          del

          Delete

          dest / dst

          Destination

          dev

          Device

          dict

          dictionary

          diff

          different

          dir

          directory

          disp

          Display

          div

          Divide

          dlg

          Dialog

          doc

          Document

          drv

          Driver

          dyna

          Dynamic

          env

          Environment

          err

          error

          ex/ext

          Extend

          exec

          execute

          flg

          flag

          frm

          Frame

          func / fn

          Function

          grp

          group

          horz

          Horizontal

          idx / ndx

          Index

          img

          Image

          impl

          Implement

          inc

          Increase

          info

          Information

          init

          Initial/Initialize/Initialization

          ins

          Insert

          inst

          Instance

          INT / intr

          Interrupt

          len

          Length

          lib

          Library

          lnk

          Link

          log

          logical

          lst

          List

          max

          maximum

          mem

          Memory

          mgr / man

          Manage / Manager

          mid

          middle

          min

          minimum

          msg

          Message

          mul

          Multiply

          num

          Number

          obj

          Object

          ofs

          Offset

          org

          Origin / Original

          param

          Parameter

          pic

          picture

          pkg

          package

          pnt / pt

          Point

          pos

          Position

          pre / prev

          previous

          prg

          program

          prn

          Print

          proc

          Process / Procedure

          prop

          Properties

          psw

          Password

          ptr

          Pointer

          pub

          Public

          rc

          rect

          ref

          Reference

          reg

          Register

          req

          request

          res

          Resource

          ret

          return

          rgn

          region

          scr

          screen

          sec

          Second

          seg

          Segment

          sel

          Select

          src

          Source

          std

          Standard

          stg

          Storage

          stm

          Stream

          str

          String

          sub

          Subtract

          sum

          summation

          svr

          Server

          sync

          Synchronization

          sys

          System

          tbl

          Table

          temp / tmp

          Temporary

          tran / trans

          translate/transation/transparent

          tst

          Test

          txt

          text

          unk

          Unknown

          upd

          Update

          upg

          Upgrade

          util

          Utility

          var

          Variable

          ver

          Version

          vert

          Vertical

          vir

          Virus

          wnd

          Window

          -End-

          - 作者 謝恩銘 轉(zhuǎn)載請注明出處


          《Linux探索之旅》全系列

          內(nèi)容簡介


          1. 前言

          2. 成果展示

          3. 解題步驟和答案

          4. 可能的優(yōu)化

          5. 第五部分第九課預(yù)告

          1. 前言


          上一課 Linux探索之旅 | 第五部分第七課:Shell實現(xiàn)圖片展示網(wǎng)頁 中,我們做了一個有趣的練習(xí)。

          這個練習(xí)用一個 Shell 腳本來生成一個 HTML 文件,這個 HTML 文件是一個展示圖片縮略圖的網(wǎng)頁,點擊每個縮略圖還會鏈接到原始圖片。

          這一課我們繼續(xù)做一個進(jìn)階的 Shell 腳本練習(xí)。這個練習(xí)要實現(xiàn)的是對一個英語字典做統(tǒng)計。

          通過這個練習(xí),你將鞏固 Shell 和 Linux 的知識點。

          為了完成它,我們需要用到一個文本文件:words.txt。這是一個包含 354935 個英文單詞的字典,請從我的 Github 上下載 (下面也會給出百度云盤下載鏈接):

          https://github.com/frogoscar/english-dictionary

          你可以選擇 git clone 到你本地目錄,或者下載 zip 壓縮包。然后提取里面的 words.txt 文件即可。

          對于 Git 和 Github 的使用有任何疑問,歡迎閱讀我的文章 :Git,Github和Gitlab簡介和基本使用

          對于不用 Github 的朋友,我也把字典文件上傳到百度云盤了,請 點我下載 。

          當(dāng)然了,如果你自己能在網(wǎng)上找到其他完整的英文字典的文本文檔也可以,不一定要用我這個。

          2. 成果展示


          我們要用到的字典文本文檔里的內(nèi)容類似如下:

          字典開頭

          字典結(jié)尾

          我們要寫一個 Shell 腳本,來顯示這個龐大的字典中 26 個英文字母(從 a 到 z )出現(xiàn)的次數(shù),而且以次數(shù)最多到最少的順序排列。

          成果是像下面這樣的:

          可以看到,字母 e 出現(xiàn)的次數(shù)最多,是 363325 次; 字母 j 出現(xiàn)的次數(shù)最少,是 5073 次。

          下面給出我的解題步驟和答案,希望大家最好先不看答案,嘗試著自己解決問題,然后再來看答案。

          你的解法也許比我還要好。相信你可以的,加油!

          3. 解題步驟和答案


          首先,我們創(chuàng)建一個文件夾,然后把 words.txt 這個字典文件放進(jìn)去。

          然后,我們在文件夾中創(chuàng)建一個文件,就是我們的腳本,叫 statistics.sh 好了,因為 statistics 是英語「統(tǒng)計」的意思。

          vim statistics.sh

          因為這個練習(xí)涉及到數(shù)據(jù)的處理,所以可以回去參考 Linux探索之旅 | 第三部分第一課:數(shù)據(jù)處理,慢條斯理 那一課。

          還有 「管道、流、重定向」 ( Linux探索之旅 | 第三部分第二課:流、管道、重定向,三管齊下 )等等。

          你也許還會在使用一些命令時忘了如何用,那你可以查一下命令的使用手冊 ( Linux探索之旅 | 第二部分第八課:RTFM 閱讀那該死的手冊 )。

          根據(jù)上面的成果那張截圖,我們可以看到要實現(xiàn)的是 :

          「在終端打印出結(jié)果,按照字母出現(xiàn)的次數(shù)來排列,由最多到最少。在次數(shù)左邊,依次是 該次數(shù)對應(yīng)的字母、空格、短橫杠、空格。而且每個字母是大寫的(在字典文件中字母都是小寫,因此需要小寫到大寫的轉(zhuǎn)換)」。

          因此,我們首先需要統(tǒng)計每個字母出現(xiàn)的次數(shù)。

          怎么做呢?我們想到了 grep 命令,它可以幫助我們在文件中查找所需的字母。

          我們首先用命令行來測試,之后再著手編寫我們的 statistics.sh 這個文件。

          首先,在命令行中輸入以下命令:

          grep -io a words.txt

          回車運行后可以看到輸出了許多行,每一行包含一個 a。

          因為 grep 就是用于在文件中查找關(guān)鍵字,并且顯示關(guān)鍵字所在的行。

          這里我們用了 -i 和 -o 兩個參數(shù)。-i 參數(shù)我們之前學(xué)過,是 ignore-case 的簡寫,表示「忽略大小寫」。

          而-o 這個參數(shù)我們之前沒學(xué)過,不過可以用 man grep 來看看:

          man grep

          可以看到 -o 參數(shù)中的 o 是英語 only-matching 的簡寫,表示「只匹配」。其描述 「 Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line. 」可以翻譯為 「只顯示匹配行中不為空的那個匹配的部分,每個這樣的部分被單獨顯示在一行上」。

          如果不加 -o 參數(shù)而直接用

          grep -i a words.txt

          那么輸出是這樣的:

          理解了嗎?不加 -o 參數(shù),那么 grep 就會輸出每一個包含 a 的行。而每一行 (字典文件中一行有一個單詞)也許包含不止一個 a。因此為了統(tǒng)計所有的 a,我們須要加上 -o 參數(shù)。

          既然我們已經(jīng)用 grep -io a words.txt 命令來輸出了所有字母 a 的 出現(xiàn)(逐行顯示),那么我們可以用 wc -l 命令來統(tǒng)計行數(shù),即可知道 a 的出現(xiàn)次數(shù)了。

          接下來我們就用管道來把 grep 命令的結(jié)果賦給 wc 命令:

          grep -io a words.txt | wc -l

          可以看到輸出是 273400,表示 words.txt 文件中字母 a 出現(xiàn)了 273400 次。

          我們也可以不加 -o 參數(shù)來測試一下:

          grep -i a words.txt | wc -l

          可以看到輸出是 206518,比 273400 少了很多,因為不加 -o 參數(shù)只統(tǒng)計了 a 出現(xiàn)的那些行(相當(dāng)于統(tǒng)計了包含 a 的單詞數(shù)目),而不是統(tǒng)計 a 的真正出現(xiàn)次數(shù)。

          我們現(xiàn)在已經(jīng)知道如何統(tǒng)計字母 a 的次數(shù)了,那么舉一反三,統(tǒng)計其他 25 個字母也不在話下。我們可以用一個循環(huán)語句來實現(xiàn):

          for char in {a..z}; do

          可以看到我們在終端輸入 for 循環(huán)語句后,依次打印出了 a, b, c, 一直到 z 這 26 個字母在 words.txt 文件中出現(xiàn)的次數(shù)。

          雖然現(xiàn)在我們只是開了個頭,但是已經(jīng)可以來寫我們的 Shell 腳本了。

          我們首先寫一些基礎(chǔ)的部分:

          #!/bin/bash# Verification of parameter# 確認(rèn)參數(shù)if [ -z  ]

          上面兩段代碼分別用于確認(rèn)參數(shù)和確認(rèn)文件存在,如果不滿足 if 條件,那么用 echo 顯示提示信息,然后用 exit 命令退出 Shell。

          然后,我們來定義一個函數(shù),就叫 statistics 好了,我們繼續(xù)在 statistics.sh 這個文件中加入以下代碼:

          # Definition of function# 函數(shù)定義statistics () { for char in {a..z}

          for char in {a..z} 不難理解,用于遍歷 a 到 z 這 26 個英語字母。

          echo "$char - `grep -io "$char" | wc -l`" 這句首先用 echo 命令輸出 char 變量的值 (依次取值 a 到 z ),然后輸出一個空格,輸出短橫杠,再輸出一個空格,然后輸出 grep -io "$char" | wc -l 這句命令的運行結(jié)果,也就是 char 變量對應(yīng)的字母的出現(xiàn)次數(shù) 。

          我們運行這個腳本(別忘了用 chmod +x statistics.sh 為腳本加上可執(zhí)行權(quán)限):

          ./statistics.sh words.txt

          可以看到我們的腳本文件如我們所愿從 a 到 z 輸出了這 26 個字母,格式也是我們需要的:

          字母 - 出現(xiàn)次數(shù)

          但是,目前我們的字母沒有大寫,而且還不是按出現(xiàn)次數(shù)最多到最小排序的,因此我們還要繼續(xù)探索。

          為了使 echo 命令的輸出中的小寫字母被轉(zhuǎn)成大寫,我們可以用 tr 命令。tr 是 translate 的縮寫,表示「翻譯,轉(zhuǎn)化」。

          我們的函數(shù)改為如下:

          # Definition of function# 函數(shù)定義statistics () { for char in {a..z}

          tr /a-z/ /A-Z/ 表示把所有 a 到 z 的小寫字母轉(zhuǎn)為對應(yīng)的大寫字母 A-Z。

          這下我們的字母已經(jīng)都變成大寫了,我們還剩最后一點沒做:對這 26 行輸出根據(jù)字母出現(xiàn)次數(shù)排序。

          為了實現(xiàn)這個,我們需要用到 sort 命令,sort命令用于對文件的行進(jìn)行排序。

          我們還需要一個中轉(zhuǎn)的文件,用于暫時儲存我們的 echo 命令循環(huán)輸出的這 26 行數(shù)據(jù)。

          因此我們可以用輸出重定向來把 echo "$char - `grep -io "$char" | wc -l`" | tr /a-z/ /A-Z/ 的結(jié)果依次寫入一個文件,比如取名為 tmp.txt。

          然后再用 sort 命令對這個文件的行進(jìn)行排序,把排序結(jié)果顯示到終端。

          我們的函數(shù)改為如下:

          # Definition of function# 函數(shù)定義statistics () { for char in {a..z}

          我們在 echo "$char - `grep -io "$char" | wc -l`" | tr /a-z/ /A-Z/ 之后加了 >> tmp.txt,以把輸出重定向到文件 tmp.txt 末尾。

          然后用 sort 命令對 tmp.txt 文件中的行進(jìn)行排序。

          我們用了 sort 命令的 -r,-n,-k 和 -t 四個參數(shù)。

          其中 -r 和 -n 參數(shù)我們比較熟悉,-n 參數(shù)用于對數(shù)字排序,-r 參數(shù)用于倒序排列。

          -k 參數(shù)用于指定根據(jù)哪幾列進(jìn)行排序,這里用 -k 2 表示根據(jù)第 2 列來排序。

          -t 參數(shù)用于指定列和列之間用什么作為分隔符,這里用 -t - 表示分隔符是 - 。

          然后每次我們都要把 tmp.txt 這個臨時文件刪除,用 rm tmp.txt

          我的最終代碼:

          #!/bin/bash# Verification of parameter
          
          # 確認(rèn)參數(shù)if [ -z $1 ]

          上面只是我的解法,你的解題思路和代碼當(dāng)然不必和我一樣。而且我也非常肯定我的代碼不夠優(yōu)。

          我相信各位能想出更好的解法,歡迎留言補(bǔ)充(如果留言支持代碼,可以把你的代碼貼出來)。

          這個程序雖然短小,但是我們用到了 Linux 中的 grep 命令,sort 命令,wc 命令,rm 命令,echo 命令,exit 命令,管道 ( | ),重定向( >> )。Shell 中的條件語句 ( if ),循環(huán)語句 ( for ),函數(shù),等知識點。

          4. 可能的優(yōu)化


          我給出的解方是基礎(chǔ)的,你可以自由發(fā)揮。

          下面提出幾點優(yōu)化的設(shè)想:

          1. 除了第一個參數(shù),也就是要統(tǒng)計的字典文件的名字,我們還可以添加其他參數(shù),來完成更多任務(wù)。

          2. 改變輸出的形式,使之更美觀。

          3. 每一行可以輸出更多信息。

          4. 嘗試不借助中間文件 tmp.txt。

          其他優(yōu)化,就有待大家去發(fā)揮自己的想象力咯!

          5. 第五部分第九課預(yù)告


          今天的課就到這里,一起加油吧!

          下一課我們來做一些測試吧 :第五部分測試題

          然后就進(jìn)入第六部分了。

          微信公眾號「程序員聯(lián)盟」ProgrammerLeague

          我是[謝恩銘](http://www.jianshu.com/u/44339a8a9afa),在巴黎奮斗的軟件工程師。

          [我的簡介](http://www.jianshu.com/p/e1c5835fee7d)

          [我的經(jīng)歷](http://www.jianshu.com/p/86c2cfe3b390)

          熱愛生活,喜歡游泳,略懂烹飪。

          人生格言:“向著標(biāo)桿直跑”


          主站蜘蛛池模板: 精品久久久久久无码中文字幕一区| 亚洲丰满熟女一区二区v| 国产AV午夜精品一区二区三区| 国产免费一区二区三区| 亚洲人成人一区二区三区| 中文字幕乱码亚洲精品一区| 综合久久一区二区三区| 一区二区国产在线观看| 精品欧洲AV无码一区二区男男| 国产麻豆媒一区一区二区三区| 亚洲无人区一区二区三区| 日本在线观看一区二区三区| 亚洲AV无码一区二区一二区| 亚洲宅男精品一区在线观看| 久久99精品国产一区二区三区 | 亚洲综合激情五月色一区| 亚洲不卡av不卡一区二区| 国产亚洲自拍一区| 久久无码人妻精品一区二区三区| 日本一区视频在线播放| 一区二区免费在线观看| 无码人妻精品一区二区蜜桃AV| 国产一区二区三区在线看片| 日韩伦理一区二区| 无码精品人妻一区二区三区AV| 日韩三级一区二区三区| 免费一区二区视频| 无码少妇一区二区浪潮av| av在线亚洲欧洲日产一区二区| 亚洲国产成人久久综合一区77| A国产一区二区免费入口| 国产综合无码一区二区辣椒| 久久精品亚洲一区二区| 亚洲日本中文字幕一区二区三区| 天堂va视频一区二区| 视频一区视频二区制服丝袜| 亚洲人成网站18禁止一区| 国产精品无码AV一区二区三区 | 精品福利视频一区二区三区| 国产精品合集一区二区三区| 无码视频一区二区三区|