網站首頁 編程語言 正文
一、概述
在Python里,我們有時候會做需要多行輸出的程序。
例如:
1、點餐系統 不停地問:你要點什么食物?
2、文本編輯 不停地輸入文字(僅限IDLE等Python自帶編輯器 )
我們Python中有一種輸入語句 : input
但是,它只能單行輸入
所以呢,我們就要通過Python的其他語句來實現多行輸入
二、代碼部分
1、已知行數多行輸出
我們現在在已知行數的情況下多行輸入,就很好辦。
首先我們要獲取行數:
lines = int(input("請輸入您要輸入的行數"))
之后就第一行、第二行、第三行……第n行這樣輸入就行了。我們可以用for循環解決。
for i in range(lines): text += input("輸入內容") + '\n' #引入一個text變量儲存數據
最后的完整代碼:
text = '' lines = int(input("請輸入您要輸入的行數")) for i in range(lines): text += input("輸入內容") + '\n' print(text)
輸出:
2、未知行數多行輸出
當我們在輸入多行文本的時候,因為我們不知道要輸入多少行,所以如果再按已知行數多行輸入的方法的話,有可能行數就會輸少了。所以,未知行數多行輸入的方法的重要性自然而然地也就出來了。
未知行數多行輸入需要有一個終止標志,比如說輸入“stop”就終止;輸入“停”就終止;一換行就終止……這樣才可以讓程序知道:嗯,寫完了。
這次我們使用換行來表示終止。
首先,我們需要一個提示語句,在input()
語句中我們寫在括號里,這次我們直接用print語句輸出。
print("開始寫文章")
然后,因為我們要不停地讓他輸入,所以要用一個死循環。再不停執行input語句。注意,因為要不停輸入內容,所以input語句中必須為空,如果填上輸出語句,程序將不停輸出提示語。而提示語因為只輸出一遍就夠了,所以我們在前面的代碼需要提前用print語句輸出出來。 之后再加個判斷,如果輸入的內容為空,則用break語句跳出循環。
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、點餐系統
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("沒有這個食物") 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("你點了", 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("輸入一個你想要的文件名") 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())
輸出:
總結?
原文鏈接:https://blog.csdn.net/xiaohuige_hhy/article/details/122474054
相關推薦
- 2022-04-11 golang如何操作csv文件詳解_Golang
- 2022-04-27 分布式Redis?Cluster集群搭建與Redis基本用法_Redis
- 2022-07-24 .Net行為型設計模式之職責鏈模式(Chain?of?Responsibility)_基礎應用
- 2022-06-22 C#操作ini文件的幫助類_C#教程
- 2022-05-03 ASP.NET?Core基于滑動窗口實現限流控制_實用技巧
- 2022-12-25 python字典中items()函數用法實例_python
- 2023-05-13 向Rust學習Go考慮簡單字符串插值特性示例解析_Golang
- 2022-12-29 React動態更改html標簽的實現方式_React
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支