Python的环境搭建与语法入门_3

流程控制语句简介

Python代码在执行时是按照自上向下顺序执行的。
通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次
流程控制语句分成两大类:条件判断语句,循环语句

input函数

# input()函数
# 该函数用来获取用户的输入
# input()调用后,程序会立即暂停,等待用户输入
#   用户输入完内容以后,点击回车程序才会继续向下执行
#   用户输入完成以后,其所输入的的内容会以返回值得形式返回
#   注意:input()的返回值是一个字符串
#   input()函数中可以设置一个字符串作为参数,这个字符串将会作为提示文字显示
# a = input(‘请输入任意内容:‘)
# print(‘用户输入的内容是:‘,a)
# input()也可以用于暂时阻止程序结束

# 获取用户输入的用户名
username = input(‘请输入你的用户名:‘)
# 判断用户名是否是admin
if username == ‘admin‘ :
	print(‘欢迎管理员光临!‘)
else :
	print(‘欢迎用户光临‘)

条件判断语句(if语句)

# 条件判断语句(if语句)
# 语法:if 条件表达式 :
#           代码块
# 执行的流程:if语句在执行时,会先对条件表达式进行求值判断,
#   如果为True,则执行if后的语句
#   如果为False,则不执行
# 默认情况下,if语句只会控制紧随其后的那条语句,如果希望if可以控制多条语句,
#   则可以在if后跟着一个代码块
# 代码块
#   代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
#   代码块就是一种为代码分组的机制
#   如果要编写代码块,语句就不能紧随在:后边,而是要写在下一行
#   代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
#   鲁迅说过:
#       世上本来没有路,走的人多了自然就有了!
#       xxxx
#   yyyy....
# 缩进有两种方式,一种是使用tab键,一种是使用空格(四个)
#   Python的官方文档中推荐我们使用空格来缩进
#   Python代码中使用的缩进方式必须统一
#   "translate_tabs_to_spaces": true,

# if False : print(‘你猜我出来么?‘)

num = 10
# if num > 10 : print(‘num比10大!‘)
# print(‘谁也管不了我‘)

if False :
    print(123)
    print(456)
    print(789)
    print(101112)
# print(‘hello‘)

num = 28

# 可以使用逻辑运算符来连接多个条件,
#   如果希望所有条件同时满足,则需要使用and
#   如果希望只要有一个条件满足即可,则需要使用or
# if num > 10 and num < 20 :
#     print(‘num比10大,num比20小!‘)

# if 10 < num < 20 :
#     print(‘num比10大,num比20小!‘)

# 在命令行让用户输入一个用户名,获取用户输入,并进行判断
# 如果用户输入的用户名是admin,则显示欢迎管理员光临
# 如果用户输入的是其他的用户名,则什么也不做
user_name = input(‘请输入一个用户名:‘)
if user_name == ‘admin‘ :
	print(‘欢迎管理员光临‘)
else :
	print(‘欢迎用户光临‘)

if-else

# 让用户在控制台中输入一个年龄
# age = int(input(‘请输入你的年龄:‘))

# 如果用户的年龄大于18岁,则显示你已经成年了
# if age >= 18 :
#     print(‘你已经成年了~~~‘)

# if-else语句
# 语法: 
#   if 条件表达式 :
#       代码块
#   else :
#       代码块
# 执行流程:
#   if-else语句在执行时,先对if后的条件表达式进行求值判断
#       如果为True,则执行if后的代码块
#       如果为False,则执行else后的代码块

age = 7
if age > 17 :
    print(‘你已经成年了~~‘)
else :
    print(‘你还未成年~~‘)

if-elif-else

# if-elif-else语句
# 语法:
#   if 条件表达式 :
#       代码块
#   elif 条件表达式 :
#       代码块
#   elif 条件表达式 :
#       代码块
#   elif 条件表达式 :
#       代码块
#   else :
#       代码块
#
# 执行流程:
#   if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
#       如果表达式的结果为True,则执行当前代码块,然后语句结束
#       如果表达式的结果为False,则继续向下判断,直到找到True为止
#       如果所有的表达式都是False,则执行else后的代码块
#   if-elif-else中只会有一个代码块会执行

age = 210

# if age > 200 :
#     print(‘活着可真没劲呢!‘)
# elif age > 100 :
#     print(‘你也是老大不小了!‘)
# elif age >= 60 :
#     print(‘你已经退休了!‘)
# elif age >= 30 :
#     print(‘你已经是中年了!‘)
# elif age >= 18 :
#     print(‘你已经成年了!‘)
# else :
#     print(‘你还是个小孩!‘)

age = 68

if age >= 18 and age < 30 :
    print(‘你已经成年了!‘)
elif age >= 30 and age < 60 :
    print(‘你已经中年了!‘)
elif age >= 60 :
    print(‘你已经退休了!‘)

if练习

练习1:
    编写一个程序,获取一个用户输入的整数。
	然后通过程序显示这个数是奇数还是偶数。
num = int(input(‘请输入一个整数:‘))
if num%2==0 :
	 print(‘这个数是奇数‘)
else :
	 print(‘这个数是偶数‘)
练习2:
    编写一个程序,检查任意一个年份是否是闰年。
    如果一个年份可以被4整除不能被100整除,或者可以被400整除,这个年份就是闰年
year = int(input(‘请输入一个年份:‘))
if (year%4==0 and year%100!=0) or (year%400==0) :
	print(‘该年份是闰年‘)
else :
	print(‘该年份不是闰年‘)
练习3:
	我家的狗5岁了,5岁的狗相当于多大年龄的人呢?
	其实非常简单,狗的前两年每一年相当于人类的10.5岁,
	然后每增加一年就增加四岁。那么5岁的狗相等于人类的
	年龄就应该是10.5+10.5+4+4+4 = 33岁
	编写一个程序,获取用户输入的狗的年龄,然后通过程序
	显示其相当于人类的年龄。如果用户输入负数,
	请显示一个提示信息
age = float(input(‘请输入狗的年龄:‘))
if 0<age<=2 :
	age = 10.5 * age
elif age >2 :
	age = 10.5 * 2 + (age -2)*4
elif age < 0 :
	print(‘输入的年龄不合法!‘)
print(‘相当于人类‘,age,‘岁‘)
练习4:
	从键盘输入小明的期末成绩:
		当成绩为100时,‘奖励一辆BMW‘
		当成绩为[80-99]时,‘奖励一台iphone‘
		当成绩为[60-79]时,‘奖励一本参考书‘
		其他时,什么奖励也没有
record = int(input(‘请输入成绩:‘))
if 0<=record<100 :
	if record == 100 :
		print(‘真棒,奖励一辆BMW‘)
	elif 80<=record<=99 :
		print(‘很不错,奖励一台iphone‘)
	elif 60<=record<=79 :
		print(‘还可以,奖励一本参考书‘)
	else :
		print(‘还要加油哦‘)
练习5:
	大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:
		高:180cm以上; 富:1000万以上; 帅:500以上;
		如果这三个条件同时满足,则:‘我一定要嫁给他‘
		如果三个条件有为真的情况,则:‘嫁吧,比上不足,比下有余。‘
		如果三个条件都不满足,则:‘不嫁!‘
gao = int(input(‘身高(cm):‘))
fu = int(input(‘富(万):‘))
shuai = int(input(‘帅:‘))
if gao >= 180 and fu >1000 and shuai >= 500 :
	print(‘我一定要嫁给他‘)
elif gao >= 180 or fu >1000 or shuai >= 500 :
	print(‘嫁吧,比上不足,比下有余。‘)
else :
	print(‘不嫁!‘)

循环语句

# 循环语句
# 循环语句可以使指定的代码块重复指定的次数
# 循环语句分成两种,while循环 和 for循环
# while循环
# 语法:
#   while 条件表达式 :
#       代码块
#   else :
#       代码块
# 执行流程:
#   while语句在执行时,会先对while后的条件表达式进行求值判断,
#       如果判断结果为True,则执行循环体(代码块),
#       循环体执行完毕,继续对条件表达式进行求值判断,以此类推,
#       直到判断结果为False,则循环终止,如果循环有对应的else,则执行else后的代码块

# 条件表达式恒为True的循环语句,称为死循环,它会一直运行,慎用!
# while True :
#     print(‘hello‘)

# 循环的三个要件(表达式)
# 初始化表达式,通过初始化表达式初始化一个变量
# i = 0

# # 条件表达式,条件表达式用来设置循环执行的条件
# while i < 10 :
#     print(i)
#     # 更新表达式,修改初始化变量的值
#     i += 1

# 创建一个执行十次的循环
i = 0
while i < 10 :
    i += 1
    print(i,‘hello‘)
else :
    print(‘循环结束‘)

循环练习

练习1:
	求100以内所有的奇数之和
i = 1
sum=0
while  i<=100 :
	if i%2!=0 :
		sum +=i
	i +=1
print(‘100以内所有的奇数之和是:‘,sum)
练习2:
	求100以内所有7的倍数之和,以及个数
# 创建一个变量,用来循环
i = 7
# 创建一个变量,来保存结果
result = 0
# 创建一个计数器,用来记录循环执行的次数
# 计数器就是一个变量,专门用来记录次数的变量
count = 0
while i < 100:
	# 为计数器加1
	count += 1
	result += i
	i += 7
print(‘总和为:‘,result,‘总数量为:‘,count)
练习3:
	水仙花数是指一个 n 位数(n≥3 ),
	它的每个位上的数字的 n 次幂之和等于它本身
	(例如:1**3 + 5**3 + 3**3 = 153)。
		求1000以内所有的水仙花数
i = 100
while i<1000 :
	a = i%10 #个位
	b = i//10%10 #十位(//10 表示除10取整)
	c = i//100%10 #百位
	if i == a**3 +b**3 +c**3 :
		print(i,‘是水仙花数‘)
	i +=1
练习4:
	获取用户输入的任意数,判断其是否是质数。
	质数是只能被1和它自身整除的数,1不是质数也不是合数。
num = int(input(‘输入一个任意的大于1的整数:‘))
i = 2
# 创建一个变量,用来记录num是否是质数,默认认为num是质数
flag = True
while i < num:
	# 判断num能否被i整除
	# 如果num能被i整除,则说明num一定不是质数
	if num % i == 0 :
		# 一旦进入判断,则证明num不是质数,则需要将flag修改为false
		flag = False
	i += 1
if flag :
	print(num,‘是质数‘)
else :
	print(num,‘不是质数‘)

循环嵌套

练习1:
    打印99乘法表
    1*1=1
    1*2=2 2*2=4
    1*3=3 2*3=6 3*3=9
    ...                 9*9=81
i = 1
while i<=9 :
	j=1
	while j<=i :
		print(‘ ‘,j,‘*‘,i,‘=‘,i*j,end=‘‘)#end=‘‘ 表示换行
		j +=1
	print()
	i += 1
练习2:
	求100以内所有的质数
i = 2
while i <= 100:
	# 创建一个变量,记录i的状态,默认认为i是质数
	flag = True
	# 判断i是否是质数
	# 获取所有可能成为i的因数的数
	j = 2
	while j < i:
		# 判断i能否被j整除
		if i % j == 0:
			# i能被j整除,证明i不是质数,修改flag为False
			flag = False
		j += 1
	# 验证结果并输出
	if flag :
		print(i)
	i += 1
练习3:
# 在控制台中打印如下图形
	# *****
	# *****
	# *****
	# *****
	# *****
	#

# 创建一个循环来控制图形的高度
# 循环嵌套时,外层循环没执行一次,内存循环就要执行一圈
# i = 0
# while i < 5:
#     # 创建一个内层循环来控制图形的宽度
#     j = 0
#     while j < 5:
#         print("* ",end=‘‘)
#         j += 1
#     print()
#     i += 1

#
# *     j<1   i=0
# **    j<2   i=1
# ***   j<3   i=2
# ****  j<4   i=3
# ***** j<5   i=4
#
# *****
# ****
# ***
# **
# *
i = 0
while i < 5:
	j = 0
	while j < i + 1:
		print("* ",end=‘‘)
		j += 1
	print()
	i += 1

循环嵌套-练习2的优化

# 模块,通过模块可以对Python进行扩展
# 引入一个time模块,来统计程序执行的时间
from time import *
# time()函数可以用来获取当前的时间,返回的单位是秒

# 优化前:
#   10000个数 12.298秒
#   100000个数 没有结果
# 第一次优化
#   10000个数 1.577秒
#   100000个数 170.645秒
# 第二次优化
#   10000个数 0.068秒
#   100000个数 1.646秒
#
# 36的因数
#   2 18
#   3 12
#   4 9
#   6 6
#
# 获取程序开始的时间
begin = time()

i = 2
while i <= 100000:
    flag = True
    j = 2 
    while j <= i ** 0.5:
        if i % j == 0:
            flag = False
            # 一旦进入判断,则证明i一定不是质数,此时内层循环没有继续执行的必要
            # 使用break来退出内层的循环
            break
        j += 1
    if flag :
        # print(i)
        pass
    i += 1

# 获取程序结束的时间
end = time()

# 计算程序执行的时间
print("程序执行花费了:",end - begin , "秒")

break和continue的使用

# break
# break可以用来立即退出循环语句(包括else)
# continue
# continue可以用来跳过当次循环
# break和continue都是只对离他最近的循环起作用
# pass
# pass是用来在判断或循环语句中占位的

# 创建一个5次的循环
# i = 0
# while i < 5:
#     if i == 3:
#         break
#     print(i)
#     i += 1
# else :
#     print(‘循环结束‘)

# i = 0
# while i < 5:
#     i += 1
#     if i == 2:
#         continue
#     print(i)
# else :
#     print(‘循环结束‘)

i = 0
if i < 5:
    pass

小游戏 《唐僧大战白骨精》

游戏介绍:

1、身份选择
    ① 显示提示信息
        欢迎光临 xxx 游戏!
        请选择你的身份:
            1.xxx
            2.xxx
        请选择:x
    ② 根据用户选择来分配身份(显示不同的提示消息)
        1.---
        2.---
        3.---

2、游戏进行
    ① 显示玩家的基本信息(攻击力 生命值)
    ② 显示玩家可以进行的操作:
        1、练级
            - 提升玩家的攻击力和生命值
        2、打BOSS
            - 玩家对BOSS进行攻击,玩家要攻击BOSS,BOSS对玩家进行反击
            - 计算BOSS是否被玩家消灭,玩家是否被BOSS消灭
            - 游戏结束
        3、逃跑
            - 退出游戏,显示提示信息,游戏结束!

代码实现:

# 显示欢迎信息
print(‘-‘*20,‘欢迎光临《唐僧大战白骨精》‘,‘-‘*20)

# 显示身份选择的信息
print(‘请选择你的身份:‘)
print(‘\t1.唐僧‘)
print(‘\t2.白骨精‘)
# 游戏的身份选择
player_choose = input(‘请选择[1-2]:‘)

# 打印一条分割线
print(‘-‘*66)

# 根据用户的选择来显示不同的提示信息
if player_choose == ‘1‘:
    # 选择1
    print(‘你已经选择了1,你将以->唐僧<-的身份来进行游戏!‘)
elif player_choose == ‘2‘:
    # 选择2
    print(‘你竟然选择了白骨精,太不要脸了,你将以->唐僧<-的身份来进行游戏!‘)
else :
    # 选择3
    print(‘你的输入有误,系统将自动分配身份,你将以->唐僧<-的身份来进行游戏!‘)

# 进入游戏

# 创建变量,来保存玩家的生命值和攻击力
player_life = 2 # 生命值
player_attack = 2 # 攻击力

# 创建一个变量,保存boss的生命值和攻击力
boss_life = 10
boss_attack = 10

# 打印一条分割线
print(‘-‘*66)
# 显示玩家的信息(攻击力、生命值)
print(f‘唐僧,你的生命值是 {player_life} , 你的攻击力是 {player_attack}‘)

# 由于游戏选项是需要反复显示的,所以必须将其编写到一个循环中
while True :
    # 打印一条分割线
    print(‘-‘*66)
    # 显示游戏选项,游戏正式开始
    print(‘请选择你要进行的操作:‘)
    print(‘\t1.练级‘)
    print(‘\t2.打BOSS‘)
    print(‘\t3.逃跑‘)
    game_choose = input(‘请选择要做的操作[1-3]:‘)

    # 处理用户的选择
    if game_choose == ‘1‘ :
        # 增加玩家的生命值和攻击力
        player_life += 2
        player_attack += 2
        # 显示最新的信息
        # 打印一条分割线
        print(‘-‘*66)
        # 显示玩家的信息(攻击力、生命值)
        print(f‘恭喜你升级了!,你现在的生命值是 {player_life} , 你的攻击力是 {player_attack}‘)
    elif game_choose == ‘2‘ :
        # 玩家攻击boss
        # 减去boss的生命值,减去的生命值应该等于玩家的攻击力
        boss_life -= player_attack 

        # 打印一条分割线
        print(‘-‘*66)
        print(‘->唐僧<- 攻击了 ->白骨精<-‘)
        # 检查boss是否死亡
        if boss_life <= 0 :
            # boss死亡,player胜利,游戏结束
            print(f‘->白骨精<-受到了 {player_attack} 点伤害,重伤不治死了,->唐僧<-赢得了胜利!‘)
            # 游戏结束
            break

        # boss要反击玩家
        # 减去玩家的生命值
        player_life -= boss_attack 
        print(‘ ->白骨精<- 攻击了 ->唐僧<-‘)
        # 检查玩家是否死亡
        if player_life <= 0 :
            # 玩家死亡
            print(f‘你受到了 {boss_attack} 点伤害,重伤不治死了!GAME OVER‘)
            # 游戏结束
            break
    elif game_choose == ‘3‘ :
        # 打印一条分割线
        print(‘-‘*66)
        # 逃跑,退出游戏
        print(‘->唐僧<-一扭头,撒腿就跑!GAME OVER‘)
        break
    else :
        # 打印一条分割线
        print(‘-‘*66)
        print(‘你的输入有误,请重新输入!‘)

Python的环境搭建与语法入门_3

上一篇:常用 Android 库


下一篇:java 网络编程中 TCP 实现聊天