成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python基礎(chǔ)之輸入、輸出與高階賦值

Astrian / 1977人閱讀

摘要:基礎(chǔ)之輸入輸出與高階賦值學(xué)習(xí)目標(biāo)輸入輸出與注釋獲取用戶輸入格式化輸出基本方法格式化函數(shù)注釋高階賦值語句賦值運(yùn)算符并行賦值序列解包鏈?zhǔn)劫x值學(xué)習(xí)目標(biāo)是簡潔易學(xué)面向?qū)ο蟮木幊陶Z言。

0. 學(xué)習(xí)目標(biāo)

Python 是簡潔、易學(xué)、面向?qū)ο蟮木幊陶Z言。它不僅擁有強(qiáng)大的原生數(shù)據(jù)類型,也提供了簡單易用的控制語句。在《Python基礎(chǔ)之變量與內(nèi)置數(shù)據(jù)類型》中,我們介紹了 Python 中的內(nèi)置原生數(shù)據(jù)類型。本節(jié)的主要目標(biāo)是介紹 Python 程序如何利用輸入、輸出語句與用戶進(jìn)行交互,以及高階賦值語句,為接下來的學(xué)習(xí)奠定基礎(chǔ),本文會(huì)完整的介紹學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法所需的 Python 基礎(chǔ)知識(shí)及基本思想,并給出相應(yīng)的實(shí)戰(zhàn)示例及解釋。

  • 掌握 Python 利用輸入輸出和用戶進(jìn)行交互
  • 理解并掌握 Python 高階賦值語句

1. 輸入、輸出與注釋

1.1 獲取用戶輸入

程序常常需要與用戶進(jìn)行交互,以獲得用戶提交的數(shù)據(jù)。Python 提供了input 函數(shù),它接受用戶輸入數(shù)據(jù)并且返回一個(gè)字符串的引用。
input 函數(shù)接受一個(gè)字符串作為參數(shù),該字符串用于作為提示用戶輸入的文本,因此也被稱為提示字符串:

>>> number = input("Enter the number of students: ")Enter the number of students: 52>>> number"52"

在交互式解釋器中執(zhí)行第一行 number = input("Enter the number of students: "),它打印字符串 "Enter the number of students: ",提示用戶輸入相應(yīng)的信息。此處輸入 52 并按回車,獲取用戶在提示字符串后的輸入后,存儲(chǔ)在 number變量中。需要注意的是 input 函數(shù)返回的值是字符串類型,如果需要將這個(gè)字符串轉(zhuǎn)換成其他類型,必須提供相應(yīng)的類型轉(zhuǎn)換,以進(jìn)行所需操作:

>>> score = input("Enter the total score: ")Enter the total score: 4396>>> number = input("Enter the number of students: ")Enter the number of students: 52>>> average_score = int(score) / int(number)>>> average_score84.53846153846153

1.2 格式化輸出

1.2.1 基本方法

我們?cè)谝陨鲜纠?,已?jīng)不止一次看到了 print 函數(shù),其提供了非常簡便打印 Python 輸出的方法。它接受零個(gè)或者多個(gè)參數(shù),默認(rèn)使用單個(gè)空格作為分隔符來顯示結(jié)果,可以通過可選參數(shù) sep 修改分隔符。此外,默認(rèn)情況下每一次打印都以換行符結(jié)尾,可以通過設(shè)置參數(shù) end 來改變:

>>> print("Data", "Structure", "and", "Algorithms")Data Structure and Algorithms>>> print("Data", "Structure", "and", "Algorithms", sep="-")Data-Structure-and-Algorithms>>> print("Data", "Structure", "and", "Algorithms", sep="-", end="!!!")Data-Structure-and-Algorithms!!!>>>

格式化字符串是一個(gè)模板,其中包含保持不變的單詞或空格,以及用于之后插入的變量的占位符。 使用格式化字符串,可以根據(jù)運(yùn)行時(shí)變量的值而發(fā)生改變:

print("The price of %s is %d yuan." % (fruit, price)) 

% 是字符串運(yùn)算符,被稱作格式化運(yùn)算符。 表達(dá)式的左邊部分是模板(也叫格式化字符串),右邊部分則是一系列用于格式化字符串的值,右邊的值的個(gè)數(shù)與格式化字符串中 % 的個(gè)數(shù)一致。這些值將依次從左到右地被換入格式化字符串。
格式化字符串可以包含一個(gè)或者多個(gè)轉(zhuǎn)換聲明。轉(zhuǎn)換字符告訴格式化運(yùn)算符,什么類型的值會(huì)被插入到字符串中的相應(yīng)位置。在上面的例子中,%s 聲明了一個(gè)字符串,%d 聲明了一個(gè)整數(shù)。
可以在 % 和格式化字符之間加入一個(gè)格式化修改符,用于實(shí)現(xiàn)更加復(fù)雜的輸出格式:

>>> print("The price of %s is %d yuan." % ("apple", fruits["apple"]))The price of apple is 5 yuan.>>> print("The price of %s is %10d yuan." % ("apple", fruits["apple"]))The price of apple is          5 yuan.>>> print("The price of %s is %+10d yuan." % ("apple", fruits["apple"]))The price of apple is         +5 yuan.>>> print("The price of %s is %-10d yuan." % ("apple", fruits["apple"]))The price of apple is 5          yuan.>>> print("The price of %s is %10.3f yuan." % ("apple", fruits["apple"]))The price of apple is      5.000 yuan.>>> print("The price of apple is %(apple)f yuan." % fruits)The price of apple is 5.000000 yuan.

1.2.2 format 格式化函數(shù)

上述方式雖然依舊可以使用,但是目前推薦到的另一種解決方案是模板字符串 format,其旨在簡化基本的格式設(shè)置機(jī)制,它融合并強(qiáng)化了前一方法的優(yōu)點(diǎn)。使用 format 格式化函數(shù)時(shí),每個(gè)替換字段使用花括號(hào)括起,其中可以包含變量名,替換字段也可以沒有名稱或?qū)⑺饕米髅Q::

>>> "The price of {} is {} yuan.".format("apple", 5.0)"The price of apple is 5.0 yuan.">>> "The price of {fruit} is {price} yuan.".format(fruit="apple", price=price)"The price of apple is 5.0 yuan.">>> "The price of {1} is {0} yuan.".format(5.0, "apple")"The price of apple is 5.0 yuan."

從上述示例可以看出,索引和變量名的排列順序無關(guān)緊要。除此之外,還通過結(jié)合冒號(hào) :,從而利用格式說明符(與 % 運(yùn)算符類似):

>>> value = 2.718281828459045>>> "{} is approximately {:.2f}".format("e", value)"e is approximately 2.72">>> "{} is approximately {:+.2f}".format("e", value)"e is approximately +2.72">>> "{} is approximately {:0>10.2f}".format("e", value)"e is approximately 0000002.72">>> "{} is approximately {:0<10.2f}".format("e", value)"e is approximately 2.72000000">>> "{} is approximately {:^10.2f}".format("e", value)"e is approximately    2.72   ">>> "{:,}".format(100000)"100,000">>> "{} is approximately {:.2%}".format("e", value)"e is approximately 271.83%">>> "{} is approximately {:.4e}".format("e", value)"e is approximately 2.7183e+00">>> "{} is approximately {:0=+10.2f}".format("e", value)"e is approximately +000002.72"

從上述示例中,很容易總結(jié)出,使用 : 號(hào)可以指定寬度、精度以及千位分隔符等,^、<、> 分別用于居中、左對(duì)齊、右對(duì)齊,并且其后可以指定寬度, 并可以使用指定單個(gè)字符進(jìn)行填充,默認(rèn)情況下用空格填充,也可以使用說明符 =,指定將填充字符放在符號(hào)和數(shù)字之間。
同樣我們可以使用 b、d、o、x 進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,分別是二進(jìn)制、十進(jìn)制、八進(jìn)制、十六進(jìn)制,c 用于將數(shù)據(jù)轉(zhuǎn)換為 Unicode 碼:

>>> "The number is {num:b}".format(num=1024)"The number is 10000000000">>> "The number is {num:d}".format(num=1024)"The number is 1024">>> "The number is {num:o}".format(num=1024)"The number is 2000">>> "The number is {num:x}".format(num=1024)"The number is 400">>> "The number is {num:c}".format(num=1024)"The number is ?"

1.3 注釋

是時(shí)候介紹下注釋了,注釋是提高程序可讀性的一個(gè)絕佳方法,也是大家容易忽視的點(diǎn)。Python 不解釋緊跟在 # 符號(hào)后面的文本:

radius = 5.0 # 圓的半徑side = 2.0 # 正方形邊長# 正方形面積與圓形面積的差area_c = 3.14 * radius ** 2area_s = side ** 2diff = area_s - area_c

如果要使用多行注釋,可以將注釋語句放在一對(duì)三雙引號(hào) (""") 或一對(duì)三單引號(hào) (""") 之間:

radius = 5.0side = 2.0area_c = 3.14 * radius ** 2area_s = side ** 2diff = area_s - area_c

2. 高階賦值語句

我們已經(jīng)學(xué)習(xí)了如何給變量賦值,或者給數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)元素賦值,但還有其他類型的賦值語句,可以用于簡化代碼,增加代碼的可讀性。

2.1 賦值運(yùn)算符

除了最基礎(chǔ)的 = 賦值運(yùn)算符外,也可以將右邊表達(dá)式中的標(biāo)準(zhǔn)運(yùn)算符移到賦值運(yùn)算符 = 的前,構(gòu)成新的運(yùn)算符,如 +=、-=、*=、/=%=等:

>>> number = 1>>> number += 4>>> print(number)5>>> number //= 2>>> print(number)2>>> number **= 2>>> print(number)4>>> string_1 = "Hello!">>> string_1 *= 2>>> print(string_1)"Hello!Hello!"

可以這種賦值方式不僅可以用于數(shù)值數(shù)據(jù),也可以用于其他數(shù)據(jù)類型(只要數(shù)據(jù)類型支持所使用的雙目運(yùn)算符)。

2.2 并行賦值

除了一個(gè)一個(gè)進(jìn)行賦值外,可以同時(shí)(并行)為多個(gè)變量賦值:

>>> a, b, c, d = 0, 1, 2, 3>>> print(a, b, c, d)0 1 2 3

通過這種方式,可以簡單的交換多個(gè)變量的值:

>>> b, c = c, b>>> print(a, b, c, d)0 2 1 3

2.3 序列解包

序列解包是將一個(gè)可迭代對(duì)象解包,并將得到的值存儲(chǔ)到一系列變量中,但要解包的序列包含的元素個(gè)數(shù)必須與等號(hào)左邊列出的變量個(gè)數(shù)相同,否則將引發(fā)異常:

>>> fruit, price = ["apple", 5.0]>>> print(fruit)apple>>> print(price)5.0>>> fruit, price, date = ("apple", 5.0)Traceback (most recent call last):  File "", line 1, in <module>ValueError: not enough values to unpack (expected 3, got 2)>>> fruit, price = ("apple", 5.0, "2021-11-11")Traceback (most recent call last):  File "", line 1, in <module>ValueError: too many values to unpack (expected 2)

為了避免異常觸發(fā),可以使用星號(hào)運(yùn)算符 * 來收集多余的值,這樣便不需要確保值和變量的個(gè)數(shù)相同,賦值語句的右邊可以是任何類型的序列,但帶星號(hào)的變量最終得到的總是一個(gè)列表:

>>> fruits = ["apple", "orange", "lemon"]>>> fruit_a, *rest = fruits>>> print(rest)["orange", "lemon"]>>> fruits_a, *rest, fruits_b = fruits>>> print(rest)["orange"]>>> fruits_a, fruits_b, fruits_c, *rest = fruits>>> print(rest)[]

2.4 鏈?zhǔn)劫x值

鏈?zhǔn)劫x值可以將多個(gè)變量關(guān)聯(lián)到同一個(gè)值:

var_1 = var_2 = value

等價(jià)于:

var_1 = valuevar_2 = var_1

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/124515.html

相關(guān)文章

  • 利用世界杯,讀懂 Python 裝飾器

    摘要:今天就結(jié)合最近的世界杯帶大家理解下裝飾器。而德國是上屆的冠軍,又是這屆奪冠熱門。裝飾器的存在是為了適用兩個(gè)場(chǎng)景,一個(gè)是增強(qiáng)被裝飾函數(shù)的行為,另一個(gè)是代碼重用。在利用語法糖,簡化賦值操作。行為良好的裝飾器可以重用,以減少代碼量。 Python 裝飾器是在面試過程高頻被問到的問題,裝飾器也是一個(gè)非常好用的特性,熟練掌握裝飾器會(huì)讓你的編程思路更加寬廣,程序也更加 pythonic。 show...

    xiguadada 評(píng)論0 收藏0
  • Python基礎(chǔ)控制結(jié)構(gòu)

    摘要:基礎(chǔ)之控制結(jié)構(gòu)學(xué)習(xí)目標(biāo)代碼塊與縮進(jìn)條件語句語句語句的嵌套斷言循環(huán)循環(huán)循環(huán)中斷循環(huán)控制語句綜合嵌套列表解析式基礎(chǔ)相關(guān)鏈接學(xué)習(xí)目標(biāo)是簡潔易學(xué)面向?qū)ο蟮木幊陶Z言。 Py...

    liaosilzu2007 評(píng)論0 收藏0
  • Python一等函數(shù)簡析

    摘要:本文重點(diǎn)了解函數(shù)在中是一等對(duì)象了解中的可調(diào)用對(duì)象掌握正確定義函數(shù)參數(shù)的方法了解和中支持函數(shù)式編程的方法。歸約函數(shù)定義能夠接受一個(gè)可迭代對(duì)象并返回單個(gè)結(jié)果的函數(shù)是歸約函數(shù)。 本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之函數(shù)篇的重點(diǎn)知識(shí)及個(gè)人心得,歡迎打算入門Python的朋友與我一起學(xué)習(xí)交流。。 本文重點(diǎn): 1、了解函數(shù)在Python中是一等對(duì)象;2、了解Python中的可調(diào)用對(duì)象;3、掌握...

    鄒立鵬 評(píng)論0 收藏0
  • Python一等函數(shù)簡析

    摘要:本文重點(diǎn)了解函數(shù)在中是一等對(duì)象了解中的可調(diào)用對(duì)象掌握正確定義函數(shù)參數(shù)的方法了解和中支持函數(shù)式編程的方法。歸約函數(shù)定義能夠接受一個(gè)可迭代對(duì)象并返回單個(gè)結(jié)果的函數(shù)是歸約函數(shù)。 導(dǎo)語:本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之函數(shù)篇的重點(diǎn)知識(shí)及個(gè)人心得,打算入門Python的朋友們可以來一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、了解函數(shù)在Python中是一等對(duì)象;2、了解Python中的可調(diào)用對(duì)象;3...

    shusen 評(píng)論0 收藏0
  • [python] 初探'函數(shù)式編程'

    摘要:前言繼續(xù)向下看廖大教程,看到了函數(shù)式編程這一節(jié),當(dāng)時(shí)是覺得沒啥用直接跳過了,這次準(zhǔn)備要仔細(xì)看一遍了,并記錄下一些心得。 前言 繼續(xù)向下看廖大教程,看到了函數(shù)式編程這一節(jié),當(dāng)時(shí)是覺得沒啥用直接跳過了,這次準(zhǔn)備要仔細(xì)看一遍了,并記錄下一些心得。 函數(shù)式編程 上學(xué)期有上一門叫 人工智能 的課,老師強(qiáng)行要我們學(xué)了一個(gè)叫做 prolog 的語言,哇那感覺確實(shí)難受,思維方式完全和之前學(xué)過的不一樣,...

    xcc3641 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<