python学习笔记--if-else分支和循环结构用法,实现猜数字游戏和冒泡排序

前言

分支(if-else)和循环是每种编程语言必定存在的用法,这里记录下python中的分支结构和结构。结合之前学习的变量,类型,运算符,表达式,和分支,循环结构,练习写个猜数字游戏和冒泡排序。

正文

分支结构

if语句的使用

分支结构可以使用if、elif和else关键字。所谓关键字就是有特殊含义的单词,像if和else就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名(事实上,用作其他的标识符也是不可以)。

判断三条边是否能够组成一个三角形

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('不能构成三角形')

输出成绩代表的等级

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('对应的等级是:', grade)

循环结构

Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。

for-in 循环
a = 'python笔记'
for x in a:
    print(x) # 输出字符串 a 的每个元素
while循环

while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True循环继续,表达式的值为False循环结束。

实现“猜数字”小游戏

计算机出一个1~100之间的随机数,人输入自己猜的数字,计算机给出对应的提示信息,直到人猜出计算机出的数字

import random

answer = random.randint(1, 100) #从1-100中随机出一个数字
count = 0 #记录猜答案的次数

while(True):  #循环,直到猜中就跳出循环
    input_num = int(input('请输入你猜的数字:')) #玩家输入数字,保证是整数
    count += 1
    if input_num > answer:
        print('你猜的不对,有点大了!请再来')
    elif input_num < answer:
        print('你猜的不对,小了点!请再来')
    else:
        print('恭喜你,猜中了')
        break  #这里是跳出循环,结束while循环

print('*' * 10) #输出10个*
print('你一共猜了%s次' % count)
if count > 5:
    print('你的智商有待。。。。')
else:
    print('你是牛人')
冒泡排序

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

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  • 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
def bubble_sort(nums):
    for i in range(len(nums) - 1):  # 这个循环负责设置冒泡排序进行的次数
        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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值