Python多行輸入程序?qū)嵗a及擴(kuò)展
一、概述
在Python里,我們有時(shí)候會(huì)做需要多行輸出的程序。
例如:
1、點(diǎn)餐系統(tǒng) 不停地問:你要點(diǎn)什么食物?
2、文本編輯 不停地輸入文字(僅限IDLE等Python自帶編輯器 )
我們Python中有一種輸入語句 : input
但是,它只能單行輸入
所以呢,我們就要通過Python的其他語句來實(shí)現(xiàn)多行輸入
二、代碼部分
1、已知行數(shù)多行輸出
我們現(xiàn)在在已知行數(shù)的情況下多行輸入,就很好辦。
首先我們要獲取行數(shù):
lines = int(input("請(qǐng)輸入您要輸入的行數(shù)"))
之后就第一行、第二行、第三行……第n行這樣輸入就行了。我們可以用for循環(huán)解決。
for i in range(lines): text += input("輸入內(nèi)容") + '\n' #引入一個(gè)text變量?jī)?chǔ)存數(shù)據(jù)
最后的完整代碼:
text = '' lines = int(input("請(qǐng)輸入您要輸入的行數(shù)")) for i in range(lines): text += input("輸入內(nèi)容") + '\n' print(text)
輸出:
2、未知行數(shù)多行輸出
當(dāng)我們?cè)谳斎攵嘈形谋镜臅r(shí)候,因?yàn)槲覀儾恢酪斎攵嗌傩?,所以如果再按已知行?shù)多行輸入的方法的話,有可能行數(shù)就會(huì)輸少了。所以,未知行數(shù)多行輸入的方法的重要性自然而然地也就出來了。
未知行數(shù)多行輸入需要有一個(gè)終止標(biāo)志,比如說輸入“stop”就終止;輸入“停”就終止;一換行就終止……這樣才可以讓程序知道:嗯,寫完了。
這次我們使用換行來表示終止。
首先,我們需要一個(gè)提示語句,在input()
語句中我們寫在括號(hào)里,這次我們直接用print語句輸出。
print("開始寫文章")
然后,因?yàn)槲覀円煌5刈屗斎?,所以要用一個(gè)死循環(huán)。再不停執(zhí)行input語句。注意,因?yàn)橐煌]斎雰?nèi)容,所以input語句中必須為空,如果填上輸出語句,程序?qū)⒉煌]敵鎏崾菊Z。而提示語因?yàn)橹惠敵鲆槐榫蛪蛄?,所以我們?cè)谇懊娴拇a需要提前用print語句輸出出來。 之后再加個(gè)判斷,如果輸入的內(nèi)容為空,則用break語句跳出循環(huán)。
while True: line_text = input() if line_text == '': break text += line_text + '\n'
最后的完整代碼:
text = '' line_text = '' print("開始寫文章") while True: line_text = input() if line_text == '': break text += line_text + '\n' print(text)
輸出:
三、拓展
1、點(diǎn)餐系統(tǒng)
def add_food(food_dict): add_foods = [] money = 0 print_i = 0 foods = food_dict.keys() for i in food_dict: print_i += 1 print("%d、%s%s元" % (print_i, i, food_dict[i])) while True: if len(add_foods) == 0: want = input("你想要食物") if want not in foods: print("沒有這個(gè)食物") elif len(add_foods) != 0: want = input("還要食物輸入食物名稱,不要就輸入除食物名稱外任意字符。你想要") if want not in foods: break for k in foods: if want == k: add_foods.append(want) money += food_dict[k] print("總金額:%d" % money) return money, add_foods foods = {"香辣無骨雞爪":5, "老八秘制小漢堡":10, "絲襪奶茶":5, "狗尿泡":7, "王致和臭豆腐":7, "鯡魚罐頭":10} money, food_list = add_food(foods) print("你點(diǎn)了", end = '') for food in food_list: if food_list.index(food) == len(food_list) - 1: print(food + '。') else: print(food + '、', end = '')
輸出:
2、文本編輯
import os file_name = '' replace = '' def add_diary(name): input_text = '' print("開始寫日記:") while True: text = input() if len(text) == 0: break input_text += text + '\n' with open(name, 'w') as f: f.write(input_text) f.close() while file_name == '': file_name = input("輸入一個(gè)你想要的文件名") if os.path.isfile(file_name + ".txt") == True: replace = input("文件夾中有此文件,是否替換?") if replace == '否': file_name = '' add_diary(file_name + '.txt') print(open(file_name + '.txt', 'r').read())
輸出:
總結(jié)
到此這篇關(guān)于Python多行輸入程序的文章就介紹到這了,更多相關(guān)Python多行輸入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)文件+參數(shù)發(fā)送request的實(shí)例代碼
這篇文章主要介紹了python實(shí)現(xiàn)文件+參數(shù)發(fā)送request的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01python3實(shí)現(xiàn)斐波那契數(shù)列(4種方法)
這篇文章主要介紹了python3實(shí)現(xiàn)斐波那契數(shù)列(4種方法),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作示例
這篇文章主要介紹了Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作,涉及Python列表list遍歷、查詢及時(shí)間消耗計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2018-06-06提高python代碼可讀性利器pycodestyle使用詳解
鑒于 Python 在數(shù)據(jù)科學(xué)中的流行,我將深入研究 pycodestyle 的使用方法,以提高 Python 代碼的質(zhì)量和可讀性。如果你想提升代碼質(zhì)量,歡迎收藏學(xué)習(xí),有所收獲,點(diǎn)贊支持2021-11-11基于Python實(shí)現(xiàn)經(jīng)典植物大戰(zhàn)僵尸游戲
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)植物大戰(zhàn)僵尸游戲,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2022-05-05Python tabulate結(jié)合loguru打印出美觀方便的日志記錄
在開發(fā)過程中經(jīng)常碰到在本地環(huán)境無法完成聯(lián)調(diào)測(cè)試的情況,必須到統(tǒng)一的聯(lián)機(jī)環(huán)境對(duì)接其他系統(tǒng)測(cè)試。往往是出現(xiàn)了BUG難以查找數(shù)據(jù)記錄及時(shí)定位到錯(cuò)誤出現(xiàn)的位置。本文將利用tabulate結(jié)合loguru實(shí)現(xiàn)打印出美觀方便的日志記錄,需要的可以參考一下2022-10-10