前言
分支(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]