Python_02

一、循环结构

  1. 应用场景:如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中其实不仅仅有需要重复的动作,还有我们上一个章节讲到的分支结构。再次,我们需要了解一下循环结构,有了循环结构我们就可以轻松的控制某件事或者某些事重复、重复、再重复的发生。在Python中构造循环结构有两种做法,一种是’for-in’循环,一种是’while’循环。
  2. for-in循环:如果明确的知道循环执行的次数或者是要对一个容器进行迭代,那么我们推荐使用’for-in’循环。
    例:用for循环实现1~100之间的偶数求和:
sum = 0
for x in range(2,101,2):
    sum += x
print(sum)

例:输入乘法口诀表(九九表)

for i in range(1,10):
    for j in range(1,10):
        if i >= j:
            print('%d * %d = %d' %(i,j,i*j),end = ' ')
        else:
            print('')
            break 
        

需要说明的是上面代码中的’range’类型,‘range’可以用来产生一个不变的数值序列,而这个序列通常都是用来循环的,如:‘range(101)’可以产生0到100的整数序列;‘range(1,100)’可以产生一个1到99的整数序列;‘range(1,100,2)’可以产生1到99的奇数序列,其中的2是步长,即数值序列的增量。
3. while循环:如果要构造不知道具体循环次数的循环结构,我们推荐使用‘while’循环,‘while’循环通过一个能够产生或转换出‘bool’值的表达式来控制循环,表达式的值为‘True’循环继续,表达式的值为‘False’循环结束。
例:猜数字游戏
计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了

import random
an = random.randint(1, 100)
count = 0
while True:
    count += 1
    num = int(input('请输入: '))
    if num < an:
        print('请大一点')
    elif num > an:
        print('请小一点')
    else:
        print('恭喜你猜对了!')
        break
print('你总共猜了%d次' % counter)
if count > 7:
    print('你的IQ有点低')

说明:上面的代码中使用了‘break’关键字来提前终止循环,需要注意的是‘break’只能终止它所在的那个循环,这一点在使用嵌套的循环结构(下面会讲到)需要引起注意。除了‘break’之外,还有另一个关键字是‘continue’,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构。

二、函数使用

1.函数的作用:不知道大家是否注意到,在上面的代码中,我们做了3次求阶乘,这样的代码实际上就是重复代码。编程大师Martin Fowler先生曾经说过:“代码有很多种坏味道,重复是最坏的一种!”,要写出高质量的代码首先要解决的就是重复代码的问题。对于上面的代码来说,我们可以将计算阶乘的功能封装到一个称之为“函数”的功能模块中,在需要计算阶乘的地方,我们只需要“调用”这个“函数”就可以了。
2. 定义函数:在Python中可以使用‘def’关键字来定义函数,和变量一样每个函数也有一个响亮的名字,而且命名规则跟变量的命名规则是一致的。在函数名后面的圆括号中可以放置传递给函数的参数,这一点和数学上的函数非常相似,程序中函数的参数就相当于是数学上说的函数的自变量,而函数执行完成后我们可以通过‘return’关键字来返回一个值,这相当于数学上说的函数的因变量。
例:查询添加用户:

def add(name):
    Names = ['aa','bb','cc']
    if name in Names:
        chaxun()
    else:
        print('该用户不存在')

def chaxun():
    print('等待同意')
    r = input('是否留言[y/n]')
    if r == 'y':
        input('请输入留言:')
    
def Start():
    name = input('请输入用户名字:')
    add(name)

Start()

作业

在这里插入图片描述

#1题

def add(a,b,c):
    pan_bie = (b*b-4*a*c)**(1//2)
    if a != 0 and pan_bie > 0:
        r1 = (-b+pan_bie)//(2*a)
        r2 = (-b-pan_bie)//(2*a)
        print('根是:',r1, r2)
    elif a != 0 and pan_bie == 0:
        r = (-b)//(2*a)
        print('根是',r)
    else:
        print('The equation has no real roots')

def Start():
    a = int(input('请输入数字:'))
    b = int(input('请输入数字:'))
    c = int(input('请输入数字:'))
    add(a,b,c)

Start()

在这里插入图片描述

#2题
import random
a = random.randint(0,100)
b = random.randint(0,100)
print(a,b)
def he(sum):
    if sum == a + b:
        print('程序报告结果为真')
    else:
        print('程序报告结果为假')

def Start():
    sum = int(input('请输入俩个整数的和:'))
    he(sum)

Start()


#3题
def xing_qi(day):
    day = day % 7
    if day == 0 :
        print('今天是星期日')
    elif day == 1 :
        print('今天是星期一')
    elif day == 2 :
        print('今天是星期二')
    elif day == 3 :
        print('今天是星期三')
    elif day == 4 :
        print('今天是星期四')
    elif day == 5 :
        print('今天是星期五')
    elif day == 6 :
        print('今天是星期六')
  
def Start():
    day = int(input('请输入今天的数字:'))
    xing_qi(day)
Start()
"""

在这里插入图片描述

#4题
def pai_xu(a,b,c):
    d = [a,b,c]
    d.sort()
    print(d)

def Start():
    a = int(input('请输入数字:'))
    b = int(input('请输入数字:'))
    c = int(input('请输入数字:'))
    pai_xu(a,b,c)
Start()

#5题
def good(weight_1,money_1,weight_2,money_2):
    value_1 = money_1 // weight_1
    value_2 = money_2 // weight_2 
    if value_1 < value_2:
        print('第一种大米实惠')
    elif value_1 > value_2:
        print('第二种大米实惠')
    else:
        print('俩种大米一样')

def Start():
    weight_1 = float(input('请输入第一种大米的重量:'))
    money_1 = float(input('请输入第一种大米的价钱:'))
    weight_2 = float(input('请输入第二种大米的重量:'))
    money_2 = float(input('请输入第二种大米的价钱'))
    good(weight_1,money_1,weight_2,money_2)

Start()


#6题
def tian_shu(year,month):
    if year > 0 and 0 < month <=12:
        if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
             print('%d年%d月有31天'%(year,month))
        elif (year%4 == 0) and month == 2:
             print('%d年%d月有29天'%(year,month))
        elif (year%4 != 0) and month == 2:
             print('%d年%d月有28天'%(year,month))
        elif month == 4 or month == 6 or month == 9 or month == 11:
             print('%d年%d月有30天'%(year,month))
    else:
        print('输入有误')
def Start():
    year = int(input('请输入年份:'))
    month = int(input('请输入月份:'))
    tian_shu(year,month)

Start()

#7题      
import random
a = random.randint(0,1)
print(a)
def zheng_fan(b):
    if b == a:
        print('您猜对了')
    else:
        print('您猜错了')
def Start():
     b = int(input('请输入您的猜测(0是正面;1是反面):'))
     zheng_fan(b)
Start()

在这里插入图片描述

#8题
import random
a =random.randint(0,2)
print(a)
def ren(b):
    if (b == 0 and a == 2) or (b == 1 and a == 0) or (b == 2 and a == 1):
        print('恭喜你赢了')
    elif b == a:
        print('平局,再接再厉')
    else:
        print('计算机赢了')

def Start():
    b = int(input('请输入一个数字(0:剪刀;1:石头;2:布):'))  
    ren(b)

Start()

在这里插入图片描述

#9题
def xing_qi(q,m,j,k):
    h = (q+(26*(m+1)//10)+k+(k//4)+(j//4)+5*j)%7
    print('它是一周的星期%d'%(h))

def Start():
    q = int(input('这是一个月的哪一天:'))
    m = int(input('月份:'))
    j = int(input('世纪数:'))
    k = int(input('一个世纪的某一年:'))
    xing_qi(q,m,j,k)
Start()

在这里插入图片描述

#10题
import random
da_xiao = random.choice(['Ace','2','3','4','5','6','7','8','9','10','Jack','Queen','King'])
hua_se = random.choice(['梅花','红桃','方块','黑桃'])
def chou(a):
    print('你选择的牌是',da_xiao,hua_se)

def Start():
    a = input('是否抽取:[y/n]')
    chou(a)

Start()

#11题
def shu_zi(hui_shu):
    if hui_shu // 100 == hui_shu % 10:
        print('%d是回文数'%(hui_shu))
    else:
        print('%d不是回文数'%(hui_shu))

def Start():
    hui_shu = int(input('请输入三位数字:'))
    shu_zi(hui_shu)

Start()

#12题
def chang(a,b,c):
    if (a + b >c) and (a + c > b) and (b + c > a):
        zhou_chang = a + b + c 
        print('周长是:%d'%(zhou_chang))  
    else:
        print('输入是非法的')
def Start():
    a = int(input('请输入数字:'))
    b = int(input('请输入数字:'))
    c = int(input('请输入数字:'))
    chang(a,b,c)
Start()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值