python學習筆記--ifelse分支和循環(huán)結(jié)構(gòu)用法,實現(xiàn)python猜數(shù)字游戲和冒泡排序

前言

分支(if-else)和循環(huán)是每種編程語言必定存在的用法,這里記錄下python中的分支結(jié)構(gòu)和結(jié)構(gòu)。結(jié)合之前學習的變量,類型,運算符,表達式,和分支,循環(huán)結(jié)構(gòu),練習寫個猜數(shù)字游戲和冒泡排序。

正文

分支結(jié)構(gòu)

if語句的使用

分支結(jié)構(gòu)可以使用if、elif和else關(guān)鍵字。所謂關(guān)鍵字就是有特殊含義的單詞,像if和else就是專門用于構(gòu)造分支結(jié)構(gòu)的關(guān)鍵字,很顯然你不能夠使用它作為變量名(事實上,用作其他的標識符也是不可以)。

判斷三條邊是否能夠組成一個三角形

a = float(4)
b = float(5)
c = float(4)
if a + b > c and a + c > b and b + c > a:
    print('周長: %f' % (a + b + c))
    p = (a + b + c) / 2
    area = (p * (p - a) * (p - b) * (p - c)) ** 0.5
    print('面積: %f' % (area))
else:
    print('不能構(gòu)成三角形')

輸出成績代表的等級

score = float(95)
if score >= 90:
    grade = 'A'
elif score >= 80: # 和PHP不一樣,這里使用的是 elif
    grade = 'B'
elif score >= 70:
    grade = 'C'
elif score >= 60:
    grade = 'D'
else:
    grade = 'E'
print('對應(yīng)的等級是:', grade)

循環(huán)結(jié)構(gòu)

Python中構(gòu)造循環(huán)結(jié)構(gòu)有兩種做法,一種是for-in循環(huán),一種是while循環(huán)。

for-in 循環(huán)

a = 'python筆記'
for x in a:
    print(x) # 輸出字符串 a 的每個元素

while循環(huán)

while循環(huán)通過一個能夠產(chǎn)生或轉(zhuǎn)換出bool值的表達式來控制循環(huán),表達式的值為True循環(huán)繼續(xù),表達式的值為False循環(huán)結(jié)束。

實現(xiàn)“猜數(shù)字”小游戲

計算機出一個1~100之間的隨機數(shù),人輸入自己猜的數(shù)字,計算機給出對應(yīng)的提示信息,直到人猜出計算機出的數(shù)字

import random

answer = random.randint(1, 100) #從1-100中隨機出一個數(shù)字
count = 0 #記錄猜答案的次數(shù)

while(True):  #循環(huán),直到猜中就跳出循環(huán)
    input_num = int(input('請輸入你猜的數(shù)字:')) #玩家輸入數(shù)字,保證是整數(shù)
    count += 1
    if input_num > answer:
        print('你猜的不對,有點大了!請再來')
    elif input_num < answer:
        print('你猜的不對,小了點!請再來')
    else:
        print('恭喜你,猜中了')
        break  #這里是跳出循環(huán),結(jié)束while循環(huán)

print('*' * 10) #輸出10個*
print('你一共猜了%s次' % count)
if count > 5:
    print('你的智商有待。。。。')
else:
    print('你是牛人')

冒泡排序

冒泡排序算法的原理如下:

  • 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  • 對每一對相鄰元素做同樣的工作,從開始第一對到結(jié)尾的最后一對。在這一點,最后的元素應(yīng)該會是最大的數(shù)。
  • 針對所有的元素重復以上的步驟,除了最后一個。
  • 持續(xù)每次對越來越少的元素重復上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。
def bubble_sort(nums):
    for i in range(len(nums) - 1):  # 這個循環(huán)負責設(shè)置冒泡排序進行的次數(shù)
        for j in range(len(nums) - i - 1):  # j為列表下標
            if nums[j] > nums[j + 1]:
                nums[j], nums[j + 1] = nums[j + 1], nums[j]
    return nums

print(bubble_sort([45, 32, 8, 33, 12, 22, 19, 97]))
# 輸出:[8, 12, 19, 22, 32, 33, 45, 97]

本文由博客一文多發(fā)平臺 [OpenWrite]發(fā)布!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,303評論 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,353評論 0 2
  • 查找和排序都是程序設(shè)計中經(jīng)常用到的算法。查找相對而言較為簡單,不外乎順序查找、二分查找、哈希表查找和二叉排序樹查找...
    eagleRock閱讀 5,779評論 0 14
  • 總結(jié)一下常見的排序算法。 排序分內(nèi)排序和外排序。內(nèi)排序:指在排序期間數(shù)據(jù)對象全部存放在內(nèi)存的排序。外排序:指在排序...
    jiangliang閱讀 1,518評論 0 1
  • 幾天前在會上做業(yè)務(wù)學習交流,朋友幫我拍了幾張照片,我看了一眼,就恨不得把當時的自己從臺上拽下來——面色暗沉,神情呆...
    東風西游閱讀 429評論 15 18

友情鏈接更多精彩內(nèi)容