《假如編程是魔法之零基礎看得懂的Python入門教程 》——(六)精簡魔法更強大

學習目標

  1. 了解對相似邏輯的簡化編寫——循環

推薦

1.《備受好評的看得懂的C語言入門教程》

目錄

第一篇:《假如編程是魔法之零基礎看得懂的Python入門教程 》——(一)既然你選擇了這系列教程那么我就要讓你聽得懂
第二篇:《假如編程是魔法之零基礎看得懂的Python入門教程 》——(二)魔法實習生第一步了解魔杖的使用
第三篇:《假如編程是魔法之零基礎看得懂的Python入門教程 》——(三)使用初始魔法跟編程魔法世界打個招呼吧
第四篇:《假如編程是魔法之零基礎看得懂的Python入門教程 》——(四)了解魔法百寶箱列表、字典及基本數據類型
第五篇:《假如編程是魔法之零基礎看得懂的Python入門教程 》——(五)我的魔法竟然有了一絲邏輯
第六篇:《假如編程是魔法之零基礎看得懂的Python入門教程 》——(六)精簡魔法更強大
第七篇:《假如編程是魔法之零基礎看得懂的Python入門教程 》——(七)我把魔法變成了積木
本系列教程將會以一種“魔法世界”的形式編寫,歡迎各位支持。

歡迎大家關注公眾號,公眾號每滿1024及1024倍數則會抽獎贈送機械鍵盤一份+IT書籍2份喲~并且公眾號會更快更新喲。
在這里插入圖片描述

一、了解對相似邏輯魔法的簡化編寫

1.1 了解代碼中的相同邏輯
在日常的代碼編寫中,經常會遇見一些相似的流程,一部分的相似流程是可以簡化的,例如我們需要編寫一程序,我們輸入一個值,這個值需要加81次9,每次都需要顯示輸入的值加9后的值,這時該如何進行程序的編寫呢?通過本系列課程已學過的知識過于麻煩,不信?那我就寫一下輸入一個值,該值重復加81次9,每次都顯示的代碼示例。為了方便觀察,我只寫出前6次:

a=int(input('請輸入一個值,將對這個值進行6次加9,且每次都輸出顯示:'))
print('你輸入的值是:',a)
a=a+9
print('第1次加9后:',a)
a=a+9
print('第2次加9后:',a)
a=a+9
print('第3次加9后:',a)
a=a+9
print('第4次加9后:',a)
a=a+9
print('第5次加9后:',a)
a=a+9
print('第6次加9后:',a)

以上代碼使用了input函數接收用戶輸入的一個值,并且使用“請輸入一個值,將對這個值進行6次加9,且每次都輸出顯示:”作為提示,由于我們在之前的章節中講到,使用input接收的值將是字符串類型,由于加法只能夠使用數字進行相加,那我應該使用int對接收的值進行類型轉換,一般代碼應該為:

a=int(a)

但我在此處的代碼編寫為:

a=int(input('請輸入一個值,將對這個值進行6次加9,且每次都輸出顯示:'))

這樣寫是否可以呢?當然可以。int表示講一個值轉換為一個整數類型,在此input將會返回一個值,該值是我們輸入的結果,那么input('請輸入一個值,將對這個值進行6次加9,且每次都輸出顯示:')則表示一個值,使用int將這個值轉換為整數當然是可以的。最后將轉換后的值賦值給a。

隨后將變量a自身加9后賦值給本身:

a=a+9

此處也可以這樣寫:

a+=9

a+=9a=a+9相等,a+=9表示變量a對等于號右邊的值進行相加,最后返回給自身;如果是a-=9則表示a變量自身減去9后賦值給變量a。所以以上代碼可以寫成:

a=int(input('請輸入一個值,將對這個值進行6次加9,且每次都輸出顯示:'))
print('你輸入的值是:',a)
a+=9
print('第1次加9后:',a)
a+=9
print('第2次加9后:',a)
a+=9
print('第3次加9后:',a)
a+=9
print('第4次加9后:',a)
a+=9
print('第5次加9后:',a)
a+=9
print('第6次加9后:',a)

變量進行相加后,隨后使用print進行輸出,結果為:
在這里插入圖片描述

以上代碼是可以簡化的,我們查看代碼中的規律,可以發現每次都是在變量a進行加9后輸出,我們拋開變量值的不同,每次這個邏輯都是重復的,一共重復了6次。弱我們去掉print內的次數,如:print('第1次加9后:',a)改成print('加9后:',a)后,將得到完全重復的:

a+=9
print('加9后:',a)

那如何讓該代碼重復6次呢?

2.1 重復魔法while循環
while是python編程中的循環魔法法之一,可以自己設置代碼重復執行多少次。while循環使用非常簡單,我們可以定義一個循環控制變量簡稱循環變量,循環變量可以控制循環多少次,一般該變量的類型為整數型,如i=0;隨后開始使用while循環設置條件,例如我們需要設置循環重復次數為10,則可以寫成while i<10:,表示變量i小于10的時候就可以一直重復一些代碼,當i大于10就不循環了。例如我們需要重復輸出10次你好,則可以寫成如下代碼:

i=0
while i<10:print('你好嗎')

首先我們定義了一個變量i并且值為0,隨后使用while魔法咒語,給while魔法咒語一個條件i<10,隨后一個冒號結束;冒號下一行開始編寫我們需要循環的代碼,在這里一定要使用縮進表示代碼的結構;在此處我編寫了代碼 print('你好嗎'),表示輸出10次“你好嗎”。那么這就完了嗎?并沒有,現在的程序是錯的。你可能問我為什么錯?那我回答你,i變量每次循環都沒進行變動,永遠i的值都是0,永遠小于10,會一直循環無限次。在while循環中,每執行一次循環就會判斷一次條件是否成立,假如不成立則會不執行循環;在這里需要添加變量i的增加,每循環1次則加1,一共加10次 就會條件不成立,循環不再執行。代碼如下:

i=0
while i<10:print('你好嗎')i+=1

運行程序,結果如下:
在這里插入圖片描述
那我們想一下,在1.1中的程序效果如何實現?其實只要把相同的邏輯放到循環中就可以了,并且設置次數為6,代碼編寫如下:

i=0
while i<6:print('加9后:',a)a+=9i+=1

如上代碼,首先定義一個變量i為0,隨后使用while循環判斷i每次循環是否小于6,小于6則執行,不小于則不執行循環;每次循環都輸出a的值,輸出完畢后a開始自增9(在自己的基礎上加一個數值表達為自增),自增完后i每次都自增加1,用于循環控制。我們的a是通過用戶輸入傳入的,那么在循環前加上1.1中的代碼:

a=int(input('請輸入一個值,將對這個值進行6次加9,且每次都輸出顯示:'))
print('你輸入的值是:',a)i=0
while i<6:print('加9后:',a)a+=9i+=1

這樣就完成了循環的使用,這樣代碼也少了,看著也舒服;運行結果如下:
在這里插入圖片描述

如果我們需要加81次,我只需要更改while的判斷條件i<6編程i小于81即可:
a=int(input('請輸入一個值,將對這個值進行6次加9,且每次都輸出顯示:'))
print('你輸入的值是:',a)i=0
while i<81:print('加9后:',a)a+=9i+=1

運行結果如下:
在這里插入圖片描述

81次也輕輕松松解決了問題,可是我們發現,沒有多少次的提示,數據一點都不清晰,那怎么辦呢?小問題,我們知道在while循環中,每次i都是加1的,第1次i是0,第2次i是1,每次都會加1,所以我們每次都把i輸出就可以知道現在是第幾次循環了:

a=int(input('請輸入一個值,將對這個值進行6次加9,且每次都輸出顯示:'))
print('你輸入的值是:',a)i=0
while i<81:print(i,'次加9后:',a)a+=9i+=1

以上代碼中輸出了i的值,運行結果如下:
在這里插入圖片描述
那我們想要自己控制循環次數怎么辦?怎運行的時候我們手動輸入一個值,這個值傳入一個變量中,該變量作為條件,代替以上的81次即可:

a=int(input('請輸入一個值,將對這個值進行6次加9,且每次都輸出顯示:'))
print('你輸入的值是:',a)
b=int(input('請輸入一個值,控制循環次數'))
print('你輸入的值是:',b)i=0
while i<b:print(i,'次加9后:',a)a+=9i+=1

運行結果如下:
在這里插入圖片描述

二、總結

本節內容介紹了C語言while循環的使用,并且介紹了如何通過變量控制循環,主要內容并不是一些使用技巧,而是循環的使用,理解循環很重要,這篇為之后的循環作一個鋪墊,希望各位魔導師們再接再厲喲~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287715.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287715.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287715.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Tiny模板語言(VelocityPlus)初步入門

2019獨角獸企業重金招聘Python工程師標準>>> 1 關于用戶手冊 本文主要介紹如何在模板中使用Tiny模板語言&#xff0c;通過查閱本手冊&#xff0c;可以對Tiny模板語言 TTL(Tiny Template Language)的用法有一個較全面的認識&#xff0c;并學會如何有效地使用Tiny模板…

第十二周學習進度表

第十二周所花時間&#xff08;包括上課&#xff09;上課&#xff1a;4小時&#xff08;2小時的實驗&#xff09;&#xff0c;周一&#xff1a;2小時&#xff0c;周三&#xff1a;3小時&#xff0c;周四&#xff1a;2小時&#xff0c;周五&#xff1a;2小時&#xff0c;周六、日…

『技術群里聊些啥』.NET 如何計算文件 MD5 哈希

前言有網友在交流群中詢問&#xff0c;文件 MD5 是全部讀取到內存后計算出來的&#xff0c;還是拿到流就可以計算出來了&#xff1a;原理上來說&#xff0c;MD5 需要對全部內容做運算&#xff0c;所以應該是獲取所有內容后再計算的。但是&#xff0c;如果全部讀取到內存后再計算…

【空間數據庫】ArcGIS地理空間數據庫GeoDatabase(GDB)概述及建立過程圖文詳解

地理數據庫(Geodatabase)是一種面向對象的數據模型,它對于地理空間特征的表達更接近我們對現實世界的認識。地理數據庫在一個公共模型框架下,對GIS處理和表達的空間特征,如適量、柵格、Tin、網絡等進行統一描述和存儲,是目前最先進的數據管理模式,本文介紹地理數據庫的概…

探索發現:平臺云——云的新風向

本文講的是探索發現&#xff1a;平臺云——云的新風向&#xff0c;云主機&#xff0c;自2011年火熱崛起之后&#xff0c;成為IDC行業替代VPS的完美系列&#xff0c;它的成功在于其相對于VPS的壓倒性優勢;而平臺云憑借其的便捷的操作、實時監控和可視化服務&#xff0c;讓站長們…

Android之運行app提示The application could not be installed: INSTALL_FAILED_TEST_ONLY

1、問題 筆記本新安裝的Android studio&#xff08;版本3.5.2&#xff09;運行最簡單的程序&#xff0c;錯誤提示如下 The application could not be installed: INSTALL_FAILED_TEST_ONLY 2、分析 高版本的Android studio里面AndroidManifest.xml文件默認如下 android:tes…

windows下配置mysql主從復制_Windows下MySQL主從復制的配置方法

MySQL主從復制允許將來自一個數據庫(主數據庫)的數據復制到一個或多個數據庫(從數據庫)。主數據庫一般是實時的業務數據寫入和更新操作&#xff0c;從數據庫常用的讀取為主。主從復制過程&#xff1a;1、主服務器上面的任何修改都會通過自己的 I/O tread(I/O 線程)保存在二進制…

【ArcGIS風暴】全國1:100萬基礎地理數據庫獲取及ArcGIS圖幅完美拼接---以甘肅省為例

在日常工作中,如第三次全國國土調查、不動產登記等,我們總需要對圖斑、線狀等數據進行數據分幅、圖幅拼接等操作。另外,日常學習工作中,無論是制圖還是進行分析,都不可避免的需要使用一些基礎地理數據,像行政邊界、水系、道路、居民地等等,那么,這些基礎地理數據有沒有…

體驗 .NET MAUI RC3 ,馬上就要發布RTM

前言.NET MAUI 已經傳了很久了&#xff0c; 5月10日&#xff0c;微軟終于跟隨 VS2022 17.3 預覽版 發布了MAUI的候選版本 &#xff0c;今天我們來體驗一波。環境運行環境&#xff1a;.Net 6開發環境&#xff1a;VS2022 17.3 &#xff08;必須是預覽3&#xff09;使用在安裝了V…

WebApi的調用-3.Basic驗證

webapi里的特性 /// <summary>/// Basic驗證 /// </summary>/// <remarks>/// /// </remarks>public class BasicAuthorizeAttibute : AuthorizeAttribute{public override void OnAuthorization(HttpActionContext actionContext){var authori…

ats 字符集問題

2019獨角獸企業重金招聘Python工程師標準>>> 架構很簡單&#xff0c;nginx->ats->nginx 后端nginx有做內容替換&#xff0c;字符編碼為gb2312&#xff0c;因為ats為utf8編碼導致前端內容展示時進行了錯誤的替換&#xff0c;導致內容錯亂。 如 治療鼻竇炎---&g…

《零基礎看得懂的C語言入門教程 》——(十三)socket服務端編寫

一、學習目標 了解C語言的socket的概念了解C語言socket的使用方法完成C語言socket服務端 目錄 C語言真的很難嗎&#xff1f;那是你沒看這張圖&#xff0c;化整為零輕松學習C語言。 第一篇&#xff1a;&#xff08;一&#xff09;脫離學習誤區 第二篇&#xff1a;&#xff0…

129. Sum Root to Leaf Numbers

/** 129. Sum Root to Leaf Numbers * 2016-5-21 By Mingyang* dfs包含三種&#xff0c;這里是dfs的preorder方法&#xff0c;先解決根再是左右*/public int sumNumbers(TreeNode root) {return dfs(root, 0);}public int dfs(TreeNode root, int levelBase) {if (root null)r…

Android之Unexpected error while executing: am start -n “***.Activity“-a android.intent.action.MAIN

1 問題 編譯項目的時候&#xff0c;as錯誤提示如下 $ adb shell am start -n "package/package.***Activity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Unexpected error while executing: am start -n "package/package.***Activ…

古董來了:1999年的物件,香港已經回歸了,我都上初中了,那么你出生了嗎?

受疫情的影響&#xff0c;哪都去不了&#xff0c;只能在家憋著&#xff08;為社會做貢獻&#xff09;這種狀態已經持續了將近兩個月了。無聊至極的我&#xff0c;一天無所事事&#xff0c;只能是在家這兒瞅瞅&#xff0c;那兒看看&#xff0c;用一句詩經里面的話來形容我最合適…

.NET性能優化-為結構體數組使用StructLinq

前言本系列的主要目的是告訴大家在遇到性能問題時&#xff0c;有哪些方案可以去優化&#xff1b;并不是要求大家一開始就使用這些方案來提升性能。在之前幾篇文章中&#xff0c;有很多網友就有一些非此即彼的觀念&#xff0c;在實際中&#xff0c;處處都是開發效率和性能之間取…

Android Studio之提示Unable to delete directory ‘*****\MyApplication\app\build‘

1 問題 運行android studio 無論clean project還是rebuild project,提示如下 Unable to delete directory *****\MyApplication\app\buildFailed to delete some children. This might happen because a process has files open or has its working directory set in the tar…

《假如編程是魔法之零基礎看得懂的Python入門教程 》——(七)我把魔法變成了積木

學習目標 了解魔法積木的使用——自定義函數了解魔法積木的結果反饋——自定義函數返回值了解魔法積木的原料傳遞——自定義函數傳參了解魔法積木的類型分類——類與對象 推薦 1.《備受好評的看得懂的C語言入門教程》 目錄 第一篇&#xff1a;《假如編程是魔法之零基礎看得…

關于Activity的getReferrer():如何在Activity中獲取調用者?

http://blog.csdn.net/u013553529/article/details/53856800 關于Activity的getReferrer()之一&#xff1a;如何在Activity中獲取調用者&#xff1f; http://blog.csdn.net/u013553529/article/details/53882440 關于Activity的getReferrer()之二&#xff1a;調用者的包名是如何…

java之七 高級類設計

static的用法 有時你希望定義一個類成員&#xff0c;使它的使用完全獨立于該類的任何對象。通常情況下&#xff0c;類成員必須通過它的類的對象訪問&#xff0c;但是可以創建這樣一個成員&#xff0c;它能夠被它自己使用&#xff0c;而不必引用特定的實例。在成員的聲明前面加上…