1.用
printf
和sprintf
格式化輸出
函式printf
有如下的格式化功能:
a)圓整浮點數至十進位制的某位。
b)以小數點來對齊一列數。
c)右對齊和左對齊輸出。
d)在輸出行的準確位置插入文字字元。
e)以指數形數來顯示浮點數
f)以八進位制或十六進製制的形式顯示無符號的整數。
g)用固定字段寬度和精度來顯示各種標量資料。
printf
語法格式如下:
print format-control-string, other-argument;
format-control-string
引數描述了輸出格式
other-argument
是可選項,對應於
format-control-string
中的每個轉換說明。每個轉換說明以乙個百分號開始,結束於乙個轉換定義符。乙個
format-control-string
可以包含幾個轉換說明。
轉換定義符
說明%d
顯示乙個有正負號的十進位制整數
%o顯示乙個沒有正負號的八進位制整數
%u顯示乙個無正負號的十進位制整數%x或
%x顯示乙個無正負號的十六進製制整數。大寫的
x表示的是
0~9的數字或
a~f的字母;而小寫的
x表明顯示的是
0~9的數字或者
a~f的字母。%e或
%e用指數形式顯示乙個浮點數
%f顯示浮點數%g或
%g顯示乙個浮點數,要麼採用浮點形式
f,要麼採用指數形式e%c
將指定的字元轉換成
ascii
%s顯示乙個字串
%%顯示乙個百分號
sprintf
和printf
的功能相同,只是
sprintf
返回的是已經格式化的字串,而不是輸出。
sprintf
可以在程式內維護乙個格式化的字串。
printf「%u /n」, 455;
printf「the string is %s /n」, $string;
printg「this string is %s /n」, 「literal」;
my $line = sprintf「 the %s cost /$ %d /n」, $product, $price;
2.輸出時規定字段寬度和精度
ø用於輸出資料的字段大小是通過字段寬度來定義的。如果字段寬度大於所要顯示資料的寬度,資料一般右對齊並在前面新增一些空白字元。為了格式化欄位中的資料,應在轉換說明的半份好和轉換定義符之間插入一位代表字段寬度的整數。
注意:如果輸出值的寬度大於字串的寬度,欄位的寬度自動增加;負數的減號占用字段寬度的一位。
printf「%4d /n」, 123;
ø不同資料型別,精度有不同的含義。使用整數轉換定義符時,精度代表所要輸出的最小數字。如果要輸出的資料的位數比精度小,輸出資料前自動新增
0,直至位數與精度相等,整數的預設精度是
1。使用浮點轉換定義符e、
e和f時,精度代表十進位制數小數後的位數。使用轉換定義符g和
g時,精度代表所要輸出資料的重要資料的最大位數。使用轉換定義符
s時,精度代表所要輸出字串的最大字元數。使用精度時,必須在百分號和轉換定義符之間依次插入圓點(。)和乙個代表精度的整數。
注意:當浮點數以小於其原本十進位制數字的精度輸出時,輸出的是圓整後的值。
printf「%
9.3f
/n」, 123.45678;
ø還可以使用帶有格式化控制字串的引數列表中,通過整數表示式來定義字段寬度。為此,在字段寬度或精度處(或兩者)插入星號。如下:
printf「 %*.*f 」, 7 , 298.376
上式的字段寬度為
7,精度為
2,執行後輸出
98.38
。欄位的寬度可以為負,但精度必須為正。字段寬度為負值會輸出左對齊的資料。3.在
printf
格式控制字串中使用旗標
旗標含義
減號讓輸出內容左對齊指定字段
加號在正數前新增乙個加號,在負數前新增乙個減號
空格在乙個並非用
+標記列印的正數前加乙個空格
#與八進位制轉換定義符(
o)一起使用時,為輸出加上乙個字首
o 與十六進製制轉換定義符(x或
x)一起使用時,為輸出加上字首ox或
ox 在用e、
e、f、
g或g輸出不帶小數部分的浮點數種,強制加上小數點(通常只有在小數點後有
1個數字時,小數點才會輸出)。對於g和
g定義符來說,追尾的
0(零)不能刪除零(0
)用前肢的
0來填充字段。
在格式化控制字串中使用旗標,應將旗標放在百分號的正右邊。幾個旗標可以在乙個轉換說明中結合使用。
printf「 % + d/n% + d/n」, 786, -786;
4.將字串作為
perl
**賦值
eval
函式只帶乙個引數(字串或**塊),並將其作為程式體中的
perl
**。這個函式使編寫有趣的使用者互動程式成為可能。如下**:
eval ( $line = );
該行將把使用者輸入的字元作為
perl
**直接執行。
eval
函式返回最後一次表示式(字串或**塊)執行後的結果。如果**塊中存在語法錯誤或其它致命錯誤,
eval
函式返回
undef
並將其存在特殊變數
$@中。如果不存在錯誤,
$@置為空串。
注意:eval
**塊中的嚴重錯誤不會過早的結束程式。因而,
eval
函式使程式更需注意執行中可能出現的各種錯誤,它把執行結果儲存在特殊變數
$@中。因而,經常使用這個函式處理異常,並將資訊列印出來。
離散時間訊號處理學習筆記 8 z逆變換
z逆變換的計算為下面的複數閉合曲線積分 x n displaystyle oint x z z dz 式中 c 表示的是收斂域內的一條閉合曲線。該積分表示式可以利用複數變數理論下的柯西積分定理推導得到。不過本門課程用不上這條式子,因為在離散lti系統分析中所遇到的典型序列和z變換,有如下更簡單的z逆...
perl學習筆記1 z
陣列1 在perl 中,如果將乙個非整數值當作陣列的下標使用,不會造成語法錯誤,但仍然會造成邏輯錯誤。例如,在乙個陣列下標表示式中,乙個非數字的字串下標求值結果為零,因此,表示式返回的肯定是陣列中的第乙個元素。2 對於陣列來說,並不一定要求其中的所有元素都具有同樣的型別。不過,所有陣列元素至少都得為...
perl學習筆記3 z
1 雜湊片斷,如果在花括號中提供了多鍵,便會返回與那些鍵相對應的值,結果生成的列表會被當作乙個陣列對待。所以無論是雜湊片斷還是陣列片斷,都要採用 符號。2 應用於雜湊的函式 keys 函式可返回乙個列表,其中包含了雜湊內的所有鍵值。values 函式也能返回乙個列表,其中包含了雜湊中的所有值。eac...