主頁 > 後端開發 > Python搬磚之旅(2nd day):基礎語法、變數、基礎資料型別、運算子、輸入輸出

Python搬磚之旅(2nd day):基礎語法、變數、基礎資料型別、運算子、輸入輸出

2020-12-18 11:30:50 後端開發

在這里插入圖片描述

基礎語法、變數、基礎資料型別、運算子、輸入輸出

  • 基礎語法、變數、基礎資料型別、運算子、輸入輸出
    • 第一章 Python基礎語法
      • 1.1 縮進
      • 1.2 注釋
      • 1.3 識別符號
    • 第二章 變數
      • 2.1 變數的定義
      • 2.2 變數的賦值程序
      • 2.3 Python獨特的賦值方式
      • 2.4 變數的地址
      • 2.5 小結
    • 第三章 基礎資料型別
      • 3.1 整數型
      • 3.2 浮點型
      • 3.3 布爾型
      • 3.4 字串型
    • 第四章 運算子
      • 4.1 算術運算子
      • 4.2 比較運算子
      • 4.3 賦值運算子
      • 4.4 邏輯運算子
      • 4.5 運算子的優先級
    • 第五章 輸入與輸出
      • 5.1 input輸入函式
      • 5.2 print輸出函式
      • 5.3 小結

基礎語法、變數、基礎資料型別、運算子、輸入輸出

以下我們進入 Python核心編程 的內容,本次主要講解關于縮進、識別符號、運算式、輸入輸出、整數型、浮點型、字串型相關的內容,

第一章 Python基礎語法

1.1 縮進

縮進的作用是使得程式的結構更加清晰,代碼的可讀性更好,按照Python的語法規則,層級相同的代碼模塊應該使用相同的縮進,也就是說,我們應盡量將按順序執行、層級相同的代碼寫在同一個縮進的模塊中,在同一層級的代碼,只有先后之分,沒有主從之分;而不同層級的代碼則有主從之分,
Python語言默認的縮進單位為4個空格的位置,
代碼縮進一般用于函式定義、類定義、分支結構以及回圈結構的代碼段中,
下面這段代碼展示了Python語言中的縮進規則,其中,if…else…中,if 和 else 屬于相同的代碼模塊:

age = 18
if age >= 18:
    print("Hello,my friends!")
else:
    print("Hello,kids!")

如果你不能很好把握代碼之間應該如何縮進,記住一條"潛規則":在行尾":"之后的代碼,往往是需要縮進的
在IDLE、Pycharm等編輯器中,可以通過設定來控制每次縮進的空格數,如果設定為"4",這樣我們就能使用制表符"Tab"鍵來快速地使用縮進來調整代碼的位置了,在大多數Python的編程環境中,系統會自動將"Tab"制表符轉化為4個空格的位置,使用制表符"Tab"的前提是確保使用一致數量的縮進空格,否則會引起系統錯誤,
縮進的小結:

  • 順序執行的普通代碼,從最左端頂格開始撰寫,不需要縮進;
  • 一些以關鍵字開頭,冒號結尾的代碼段,往往下一行都要縮進;
  • 如果當前代碼塊的功能執行完畢,需要退回縮進;
  • 如果代碼需要分為幾個不同層級的模塊來執行,那么每個代碼模塊需要對應不同的縮進,

1.2 注釋

Python中常用的注釋方式分為單行注釋、多行注釋,注釋是在代碼之外的具有幫助性、說明性的檔案,程式在執行程序中,并不會執行注釋中的內容,注釋的快捷鍵是"CTRL+/",
單行注釋:以"#“開頭,可以寫在每一行的開頭,也可以寫在代碼之后,
多行注釋:以三對單引號 ‘’’…’’’ ,或者三對雙引號 “””…""",其中包裹住要注釋的檔案,一般不放在代碼后,
在程式中加入注釋,不但可以幫助讀者理解代碼的功能和作用,以及在一些排錯的程序中,可以先注釋掉一些代碼,觀察代碼對程式運行的影響,所以說,注釋對于程式的撰寫者和閱讀者來說,都是非常重要的,初學者要養成寫注釋的好習慣,在下面這段檔案中,我們使用多行注釋和單行注釋來幫助讀者理解代碼將要執行的功能,

# 設定一個變數用來保存物件的年齡
age = 18
"""
以下這段代碼的作用是對年齡進行判斷,
如果年齡大于等于18歲,列印'你好,我的朋友!';
如果年齡小于18歲,列印'你好,我的孩子!';
"""
if age >= 18:
    print("Hello,my friends!")  #如果年齡大于等于18歲,列印'Hello,my friends!'
else:
    print("Hello,my kids!")     #如果年齡小于18歲,列印'Hello,my kids!'

1.3 識別符號

通俗意義上來說,識別符號就是程式員給變數、函式、類等取的名字,但是,Python對于識別符號的規定較為嚴格,所以說,名字也是不能亂取的,必須要遵循以下幾點原則:

  1. 區分大小寫;
    Python是大小寫敏感的,也就是說,同樣的單詞,但是因為大小寫的不同,在Python編程環境中,會認為是不同的兩個物件,這與其他某些編程語言是不同的,
>>> age = 18   #age是一個變數,給其賦值18
>>> age        #系統能正常地訪問age的值
18
>>> Age        #但是系統不能訪問Age的物件內容,系統會報"型別錯誤"
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    Age        #但是系統不能訪問Age的物件內容,系統會報"型別錯誤"
NameError: name 'Age' is not defined

在上面這段代碼中,因為正常地將18這個整數型的數值賦給了age,所以系統在訪問age時是正常顯示的;但是,Age與age并不是相同的變數,且沒有對Age進行任何的賦值操作,所以會導致系統報錯,

  1. 較好的可讀性;
    對一個變數、函式或者類來說,我們應盡可能使用英文單詞使得其具有可讀性,使得讀者能夠從字面就能理解該變數、函式或者類所代表的含義,而盡量不要去使用諸如"abc",“a1”,“x2"這樣意義模糊的變數,
    推薦的變數名:’'name”,“age”,“numbers”
    推薦的函式名:“isOdd”,“count_even_number”
    推薦的類名:“Car”,“Student”

  2. 符合命名規定;
    識別符號的第一個字符必須是大小寫字母或者下劃線,不能是數字或者其他符號,如"$Age"、“1Age”、"&Age"這些都是不合法的識別符號,
    識別符號的其他的部分由字母、數字和下劃線組成,像"_age"、“age1”、"students_age"這樣則是合法的識別符號,

  3. 通用的命名方法;
    下劃線(蛇形)命名法:英文單詞全部小寫,中間以下劃線"_"連接,常用于函式、方法的命名,
    如 draw_images, get_text等
    小駝峰命名法:除首字母小寫外,其余單詞的首字母均大寫,常用于變數的命名,
    如:pinkPencil, studentClass
    大駝峰命名法:所有單詞的首字母均大寫,常用于類名的命名,
    如: HtmlText, ConferenceContent等

  4. 不以關鍵字命名,
    在Python系統中,預先定義了一些常用的字符作為關鍵字(或稱為保留字),這些字符在程式運行中起到關鍵的語法作用,因而最好不要用來給函式、變數、類進行命名,否則會覆寫其原來的含義,造成程式的混亂,
    關鍵字在后來的學習中會逐漸積累,所以不需要死記硬背,
    我們可以通過輸入import keyword,使用keyword.kwlist來查看所有的關鍵詞

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
  1. 盡量不以中文字符命名識別符號,
    盡管在Python高級的版本中,已經支持使用中文字符做為變數、類或者函式的名稱,但是考慮到中文使用的局限性,與程式的泛用性,我們盡量使用英文單詞來命名,而不是使用中文字符,這種命名方式對國外的程式閱讀者不是很友好,

識別符號小作業
以下命名不符合識別符號規則的有 ( 多選 ) :
A. list = [1,2,3,4]
B. 01_a = 1
C. name = ‘amy’
D. 年齡 = 18
答案是A、B、D
決議:1,list是系統保留的關鍵字;2,數字不能作為識別符號的開頭;3,盡量不適用中文作為識別符號

第二章 變數

2.1 變數的定義

變數,顧名思義,其代表的值在程式執行程序中會發生變化,
變數的實質是在計算機的記憶體空間中開辟出的一塊區域,我們往往使用變數來保存一些物件的值,
在其他的編程語言中,變數必須在定義后才能使用,而在Python語言中,變數是不需要宣告的,變數在賦值操作("="為賦值符號)的同時完成變數的宣告和定義,

與變數相對的概念是常量,其代表的值在程式執行程序中不會發生變化,Python語言中沒有嚴格地規定常量的表現形式,其通常以變數的形態出現,但是我們在使用程式的程序中,應該遵循開發者的說明,盡量不要去更改常量,在 python 中,使用識別符號字母全部大寫的方式來識別常量,
無論是變數還是常量,在創建時都會在記憶體中開辟一塊空間,用于保存它的值,

2.2 變數的賦值程序

studentName = "Alice"     #創建一個叫做"Alice"的字串型的物件,然后將其賦值給studentName這個變數

看一下上面的代碼,程式在變數的賦值程序中發生了什么事情呢?
第1步,系統在記憶體中創建了一個叫做"Alice"的字串型的物件;
第2不,系統在記憶體中創建了一個叫做studentName變數,并讓該變數指向"Alice"這個字串型物件,
變數的賦值程序

請同學們觀察下面這段代碼,說出該段代碼的運行結果,然后從A,B,C,D四個選項中選出正確的答案:

# 請說出以下代碼的運行結果,然后從A,B,C,D四個選項中選出正確的答案
studentName1 = "Alice"
studentName2 = studentName1
studentName1 = "Jaina"
print(studentName1)
print(studentName2)

A
Alice
Alice
B
Jaina
Jaina
C
Alice
Jaina
D
Jaina
Alice
正確答案是 D
我們來看一下這段代碼發生了什么:
首先,系統在記憶體中創建了"Alice" 這個字串型的物件,并創建了studentName1 指向它;
給studentName1賦值

其次,系統在記憶體中創建了變數studentName2,并且把studentName1指向的物件傳遞給它,這樣,studentName1和studentName2就同時指向同一個物件,我們這時就認為studentName1和studentName1是相等的,
把studentName1的值賦給studentName2
最后,系統在記憶體中新建了一個字串型物件"Jaina",并讓studentName1這個變數指向它,但此時,studentName2這個變數仍然指向字串型的物件"Alice",所以,studentName1對應的值是"Jaina",而studentName2對應的值是"Alice",這樣,我們的列印結果就是答案D了,
新建字串物件并賦值給studentName1

2.3 Python獨特的賦值方式

如果有同學學過其他的編程語言,會發現其他的編程語言實作變數的賦值要一個一個依次進行,但是,Python語言是簡潔的、高效的,注定Python是不同凡響的,
如果我們要把1這個值同時賦給a,b,c這三個變數,我們可以這么做:

>>> a=b=c=1
>>> a
1
>>> b
1
>>> c
1

賦值操作的程序是從右向左,現將1賦值給c,再將c的值賦給b,再將b的值賦給a,

如果要在一條陳述句中將1賦給a,2賦給b,3賦給c,又應該怎么做呢?

>>> a,b,c = 1,2,3
>>> a
1
>>> b
2
>>> c
3

我們可以使用","將變數和要賦值的物件分開,這樣,值就會一一"映射"到變數上,從而實作變數的快速賦值,
變數賦值小作業
a = 6
b = 8
實作 a = 8 , b=6
答案: a,b = b,a
決議,賦值運算是從右向左運行,在賦值運算前,b指向8的值,a指向6的值,那么則相當于a,b = 8,6,之后的賦值運算,將a指向8的值,將b指向6的值,就實作了a, b 兩個變數值互換的運算,

2.4 變數的地址

變數對于程式開發人員來說,就像一座座的小房子,在小房子里裝著各種各樣的資料物件,要訪問這些資料就必須要找到裝著資料物件的小房子,那么我們怎么去找到這些小房子呢?聰明的同學們已經猜到了,我們可以通過"地址"去找到房子,進而訪問其中的資料物件,在程式中,我們可以使用id()函式來查看變數的地址,
每個變數在記憶體中都有一個ID,我們可以將其理解為變數的地址,當兩個不同名稱的變數,其地址都是同一個ID的時候,我們認為這兩個變數其實是相等的,
下面的代碼展示了Python是如何判斷兩個變數是否相等的,

>>> studentName1 = "Alice"
>>> studentName2 = "Alice"
>>> id(studentName1)
47961288
>>> id(studentName2)
47961288
>>> print(studentName1 == studentName2)
True

我們可以看到,studentName1和studentName2的id地址都是一致的,所以,studentName1 == studentName2是正確的,

2.5 小結

  • 在python當中創建變數無需先宣告在使用,在賦值同時創建變數
  • 每個變數在使用前都必須賦值,變數被賦值以后才可以使用
  • 賦值號"="的賦值運算子是按照從右往左的計算順序
  • Python允許同時為多個變數賦值
  • 地址相同的變數,即使變數名不一樣,系統也認為是相同的

第三章 基礎資料型別

在編程程序中,我們經常會使用各種各樣的資料型別,其中有一些基礎的資料型別我們會經常使用到,主要包括整數型、浮點型、布爾型、復數性以及字串型,其中,整數型、浮點型、布爾型、復數性合稱為數字型,

3.1 整數型

整數型就是我們通常意義上所說的整數,包括0,正整數、負整數,不包括小數點,整數型是我們在編程活動中最經常見到的資料型別,在Python中以"int"來表示整數型,
使用type()可以查看變數的資料型別,

>>> number = 19
>>> type(number)
<class 'int'>

整數型可以用十進制、二進制、八進制、以及十六進制來表示:

  • 十進制 : 不用使用進制符號,正常表示即可,如:19,37等;
  • 二進制 : 使用進制符號0b或0B,如 0b101010 ,0B101010;
  • 八進制 : 使用進制符號0b或0B,如 0o7765,0O7765;
  • 十六進制 :使用進制符號0b或0B,如 0xCF25,0XCF25,

那么,如果將其他進制的值賦值給變數,再將其列印出來,會發生什么事呢?

>>> 0b101010
42
>>> 0B101010
42
>>> 0o7765
4085
>>> 0O7765
4085
>>> 0xCF25
53029
>>> 
>>> 0XCF25
53029

知識擴展 : 我們會發現,對應的二進制、八進制、十六進制的值在輸出時都默認轉換為10進制的值,
那么,有沒有辦法讓其仍然按照八進制、十六進制的形式列印呢?
我們可以借助print函式的格式化列印功能來實作
%d — dec 十進制
%o — oct 八進制
%x — hex 十六進制

>>> num = 29
>>> print("%d"%num)
29
>>> print("%o"%num)
35
>>> print("%x"%(num))
1d

我們還可以借助一些函式,這些函式分別是
十進制轉換為二進制bin();十進制轉換為二進制oct();十進制轉換為十六進制hex();

>>> number1 = 0b101010
>>> number1
42
>>> bin(number1)
'0b101010'
>>> number2 = 0o7765
>>> number2
4085
>>> oct(number2)
'0o7765'
>>> number3 = 0XCF25
>>> number3
53029
>>> hex(number3)
'0xcf25'

3.2 浮點型

與整數型相對,浮點型就是帶小數點的數字,由整數部分和小數部分組成,比如我們常見的"π",在程式中,我們經常將其作為一個常量表示出來,

>>> PI = 3.1415926
>>> print(PI)
3.1415926

浮點型的數值進行計算并不是完全精準的,可能會遇到四舍五入的情況,比如5/3會得到1.6666666666666667

>>> 5/3
1.6666666666666667

如果一個整數與一個浮點數相加、相減、相乘、相除,結果都是一個浮點數,

>>> a,b = 1,2.0
>>> a+b
3.0
>>> a-b
-1.0
>>> a*b
2.0
>>> a/b
0.5

3.3 布爾型

在計算機中,我們經常需要判斷"正確"與"錯誤"的情況,布爾型是一種表示邏輯的簡單型別,該型別的元素只有"True"和"False"兩個,分別表示邏輯上的"真"和"假",
常用的布爾型數值有:and 與運算 , or 或運算, not 非運算
A and B 與運算 : 只有兩個變數同時為"True"時,其運算結果才能為"True",否則運算結果為"False";
A or B 或運算 : 兩個變數其中之一為"True"時,其運算結果為"True",否則運算結果為"False";
not A 非運算 : 當變數的值為"True"時,其運算結果為"False";當變數的值為"False"時,其運算結果為"True",

>>> A,B = True,True
>>> A and B
True
>>> A or B
True
>>> A,B = True,False
>>> A and B
False
>>> A or B
True
>>> A,B = False,False
>>> A and B
False
>>> A or B
False
>>> C = True
>>> not C
False
>>> C = False
>>> not C
True

在Python程式中,布爾型的值常用語分支結構的程式陳述句或者作為while回圈陳述句的判斷條件,

3.4 字串型

在Python中,用一對單引號或者一對雙引號包裹起來的字符集合稱之為字串,其對應的資料型別為str,

>>> str1 = "Python"
>>> str1
'Python'
>>> str1 = 'python'
>>> str1
'python'
>>> type(str1)
<class 'str'>

還有一種用三對單引號或三對雙引號包裹起來的字符集合,其中的字符可以由多行組成,我們在講注釋的時候已經介紹過這種形式了,在這里就不做過多的介紹,
字串中的字符可以包括大小寫字母、數字、中文字符、特殊符號,以及一些轉義符,
轉義符是指一些具有特殊含義的字符,用于實作特定的功能,注意:轉義符只占據一個字符的位置,
常見的轉移字符請參考https://www.runoob.com/python3/python3-string.html這篇網頁的內容,
在這里插入圖片描述
字串這一部分的內容比較多,我會在單獨的一章的中來詳細闡述如何處理字串,

第四章 運算子

4.1 算術運算子

算術運算子指用來實作算術運算的特殊符號,比如常見的加法"+",減法"-",乘法"*",“除法/“等等,需要注意的是,算術運算子是有優先級的,一般來說乘法”*”,“除法/“的優先級要大于加法”+”,減法"-",
除了加減乘除之外,還有其他一些常用的算術運算子,
** 冪運算,x ** y 表示取得x的y次方,如 5**2 得到25,冪運算的優先級最高,
% 取余數運算 ,如 5 % 3 得到 2
// 取整運算 , 回傳商的整數部分,如 5//2 得到2,5.0//2得到2.0,5//-2 得到-3
取余運算"%"、 取整運算"//“和乘法”*","除法/"的優先級一樣,所以在一起運算時,需要借助小括號()

4.2 比較運算子

常用來比較兩個數字的大小,結果回傳True或者False,
需要注意的是,除了可以使用純數字進行比較之外,也可以進行變數、運算式之間的比較,
比較運算子的優先級小于算術運算子的優先級,

>>> 33 > 55
False
>>> a,b = 33,55
>>> a > b
False
>>> a+b > a-b
True

4.3 賦值運算子

常見的賦值運算子是"=" , 其作用是將一個資料物件賦值給變數,
除了常規的賦值運算外,還有一些復合賦值運算,
a ** = b 等價于 a = a ** b
a %= b 等價于 a = a % b
a //= b 等價于 a = a // b
a *= b 等價于 a = a * b
a /= b 等價于 a = a / b
a += b 等價于 a = a + b
a -= b 等價于 a = a - b

4.4 邏輯運算子

在Python程式中,只允許將 and, or ,not三種運算子用于邏輯運算,
and :與運算
or :或運算
not :非運算
可參考布爾型資料型別

4.5 運算子的優先級

一般而言,冪運算 ** 優先級最高,其次是乘法、除法、取余、取整運算,然后是加法、減法,再次是 賦值運算,最后是邏輯運算,
除了以上運算子之外,還有其他一些運算子,但這里只介紹最常用的幾種運算子,如果對運算子有興趣,同學們可以參考這個網頁:
https://www.runoob.com/python/python-operators.html
在這里插入圖片描述

第五章 輸入與輸出

5.1 input輸入函式

input() 是Python的內置函式,用來獲取用戶輸入,其回傳值為字串型別,當用戶未輸入時,程式會阻塞行程,停止就向下執行,并等待用戶輸入,直到用戶輸入完成再繼續執行,

age = input("請輸入你的年齡:")
print("你的年齡是:",age)
print("age的資料型別是:",type(age))

請閱讀并執行以上的代碼(假設輸入年齡為18),說一說代碼的結果是什么?

請輸入你的年齡:18
你的年齡是: 18
age的資料型別是: <class 'str'>

從結果中我們可以看到,input函式回傳的是一個字串型別的物件,然后將這個字串物件賦值給了age這個變數,所以age的資料型別是str,那么問題來了,如果我們想使用輸入的數字進行數學運算該怎么辦呢?

num1 = input("請輸入昨天的營業額:")
num2 = input("請輸入今天的營業額:")
print("",num1+num2)

上面這段代碼有什么問題?
問題1:num1和num2是字串型別,不能用于數字運算,
問題2:字串和字串使用"+"運算子會將兩個字串拼接在一起,

請輸入昨天的營業額:180.55
請輸入今天的營業額:260.74
昨天和今天的營業額合計為: 180.55260.74

哈哈,結果是不是很奇怪?那我們應該怎么去修改呢?

num1 = float(input("請輸入昨天的營業額:"))
num2 = float(input("請輸入今天的營業額:"))
print("昨天和今天的營業額合計為:",num1+num2)
請輸入昨天的營業額:180.55
請輸入今天的營業額:260.74
昨天和今天的營業額合計為: 441.29

在這里,我們使用了強制型別轉換的方法,將字串型別的"180.55"和"260.74"轉換為了浮點型的180.55和260.74,并分別賦值給num1和num2,這樣num1和num2就能進行數值運算,得到我們想要的結果了,
需要注意的是,強制型別轉換必須是字串中的內容全部為數字才可以,
提示:使用str.isdigit() 判斷字串是否全部為數字組成

input 輸入函式小練習1:
用戶輸入 id_card
判斷 id_card 是否為全數字
是,則列印輸出 id_card
否,則列印輸出 ‘id_card 格式錯誤’

id_card = input("請輸入你的id_card:")
if id_card.isdigit():
    print(id_card)
else:
    print('id_card 格式錯誤')

input 輸入函式小練習2:
輸入年齡
當年齡大于18,則輸出”你好呀,小靚仔”;
否則輸出”你好呀!小朋友”

while(True):
    age = input("請輸入你的年齡:")
    if age.isdigit():
        age = int(age)
        if age >= 18:
            print("你好呀,小靚仔!")
            break
        else:
            print("你好呀!小朋友!")
            break
    else:
        print("請重新輸入正確的數字,")
        continue

5.2 print輸出函式

print輸出函式用于列印輸出,語法為:print(self, *args, sep=’ ‘, end=’\n’, file=None)
引數中sep表示各個值之間的分割符,默認為空格;end表示結尾處的符號,默認為換行符,

>>> num1,num2,num3,num4 = 1,2,3,4
>>> print(num1,num2,num3,num4,sep="+")
1+2+3+4
>>> print(num1,num2,num3,num4,sep="+",end='=')
1+2+3+4=
>>> print(num1,num2,num3,num4,sep="",end='')
1234

觀察以上的代碼片段,并考慮為什么輸出結果是這樣?

print輸出函式小作業1:
num1,num2,num3,num4 = 1,2,3,4
使用print陳述句把整個等式列印出來,即列印出"1+2+3+4=10"的效果
參考答案:

num1,num2,num3,num4 = 1,2,3,4
print(num1,num2,num3,num4,sep="+",end='=')
print(num1+num2+num3+num4)

print輸出函式小作業2:
print(‘12’)
print('3
4’)
使用一個 print 陳述句實作上面兩個 print() 陳述句輸出的效果
參考答案:

print('1*2','3*4',sep='\n')

print陳述句的格式化輸出:
方法一:使用格式化字符,需要注意的是,格式化字符需要與變數的型別保持一致,
%s:對應字串型別
%d:對應整數型型別
%.2f:對應浮點數型別,".2"表示保留兩位小數

>>> name,age,money = "Ross",20,200000
>>> print("%s雖然只有%d歲,但是她已經賺到了%.2f元的錢了,"%(name,age,money))
Ross雖然只有20歲,但是她已經賺到了200000.00元的錢了,

方法二:使用format函式,需要注意的是,format函式中列印的順序默認為順序執行,但是列印順序可以人為控制,
更多詳細資訊請參考:https://www.runoob.com/python/att-string-format.html

>>> name,age,money = "Ross",20,200000
print("{}雖然只有{}歲,但是她已經賺到了{:.2f}元的錢了,".format(name,age,money))
Ross雖然只有20歲,但是她已經賺到了200000.00元的錢了,

5.3 小結

input輸入函式的特征:

  1. 阻塞:程式會等待用戶輸入,輸入完成后繼續執行
  2. 回傳值為字串:input函式會回傳一個字串型別的值,

print函式的特征:

  1. 輸出值之間使用sep引數作為分隔符
  2. 輸出后使用end引數作為行的末尾,
  3. 可以使用格式化符號指定列印格式

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

標籤:python

上一篇:趕集網租房資訊

下一篇:【Task01】Pandas學習打卡

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