DAY002—task02

TASK02

输入输出语句

昨天的学习忽略了输入的过程

  1. 输入 函数 input()

    格式: 输入变量名=input(‘提示字符’)

    E:

    answer=input("what is yopur problem?")
    
  2. 输出函数 print()

    格式:print(‘打印的字符’)

    【注意】可以直接打印变量和运算 输入逗号自动打印为空格。

    print('teenager')
    

条件语句

  1. if

    语句简单,无括号,后直接跟冒号和条件,若为True,则执行命令行

    【注意】:命令行为一。

    E001:

    age = 18
    if age >= 18:
        print('your age is', age)
        print('A man')
    
  2. if else

    若if命令为false,执行else

    E002:

    age = 3
    if age >= 18:
        print('your age is', age)
        print('A man')
    else:
        print('a kid')
    
  3. if elif else

    【注意】此结构的执行顺序为逐层进行,一旦满足前一条判断语句,只执行后一条命令,后面判断则不再执行。

    E003:

    s=input('your age')
    age=int(s)
    if age >= 6:
        print('teenager')
    elif age >= 18:
        print('adult')
    else:
        print('kid')
        #输入20
        输出 teenager
    

如上所示,即多层命令应该考虑命令先后的问题。

应改正为:

s=input('your age')
age=int(s)
if age >= 18:
    print('adult')
elif age >= 6:
    print('teenager')
else:
    print('kid')
    输入20
    adult
    输入8
    teenager

循环语句

  1. while…(else)

    格式:

    while 布尔表达式:
        代码块
    

    E003:

    while 1:
        print('the soul is best')
        break
        #不加break会一直执行直到bool为真,小心无限循环!
    

【补充】 当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。

加了else,是指while语句完整结束后,再执行else的语句,若while中出现break等中断循环的语句,将终止循环。

2 for…in循环

配合序列使用,起到遍历的效果,可遍历任何可迭代对象,像list,str。

格式:

for 迭代变量 in 可迭代对象:
    代码块

E004:

str = ['我','今','天','和','赵','同','学','玩','得','很','开','心']
for every in str:
    print(every,end = '')
3 for…else循环

格式:

for 迭代变量 in 可迭代对象:
    代码块
else:
    代码块

使用同while else语句,若前条件中断,则后条件也不输出。

4 奇奇怪怪的函数
  1. range()

    数列函数

    格式:range(起始值(含),终止值(不含),累加值(默认为1))

    E005:

    for i in range(1,11,2):
        print(i,end='')
        #13579
    
  2. enumerate()

    枚举函数,利用下标对序列或数组中所有的对象进行标号,然后列举。

    格式:

    enumerate(序列, [start=0]#下标起始的位置)
    enumerate(A, j)  A为序列名,j为应用起始值
    
    

    E005:

    seasons = ['Spring', 'Summer', 'Fall', 'Winter']
    lst = list(enumerate(seasons))
    print(lst)
    # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
    lst = list(enumerate(seasons, start=1))  # 下标从 1 开始
    print(lst)
    # [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
    
5 循环中其他语句
  1. break

    跳出当前语句

  2. continue

    终止本轮循环并开始下一轮

    for i in range(10):
        if i % 2 != 0:
            print(i)
            continue
        i += 2
        print(i)
    
    # 2
    # 1
    # 4
    # 3
    # 6
    # 5
    # 8
    # 7
    # 10
    # 9
    
  3. pass

    pass是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。尽管pass语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个pass语句,让代码可以正常运行。

    练习题

    1、编写一个Python程序来查找那些既可以被7整除又可以被5整除的数字,介于1500和2700之间。
    for i in range(1500,2701):
       if i % 5 == 0 and i % 7 == 0:
        print(i)
    
    2、龟兔赛跑游戏

    题目描述:

    话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔 子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以 上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。

    然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1(表示每秒兔子能跑v1 米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找 到了你——清华大学计算机系的高才生——请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。

    输入:

    输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2< =100;t< =300;s< =10;l< =10000且为v1,v2的公倍数)

    输出:

    输出包含两行,第一行输出比赛结果——一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。

    第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。


    样例输入:

    10 5 5 2 20

    样例输出

    D 4

    print("请输入五个正整数v1(兔速),v2(龟速),t(兔领),s(兔停),l(赛道长),用空格隔开")
    v1,v2,t,s,l = map(int,input().split())
    if v1<=100 and v2<=100 and t<=300 and s<=10 and l<=10000 and l%v1==0 and l%v2==0:
        s1 = 0
        s2 = 0
        i = 0
        while s1<l and s2<l:
            s1 = v1 + s1
            s2 = v2 + s2
            i += 1
            if s1 == 1 or s2 == 1:
                break
            else (s1-s2)>= t:
                s2 = s2+ v2*s
                i = i+s
            if s1-s2>=t:
                s2 = v2 * s+s2
                i=i+s
            else:
                s2+=v2
                s1+=v1
                i+=1
        if s1<s2:
            print("T")
        if s1>s2:
            print('R')
        if s1=s2:
            print('D')
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
水利改革发展 中国政府高度重视水利建设,将水利作为国家基础设施建设的优先领域。政策文件强调了防洪抗旱、水资源管理、水环境保护和水生态修复等方面的全面要求,推动了水利信息化的发展。 智慧水利建设目标 智慧水利的建设目标是通过数据共享、应用惠民、应急预警等手段,打破信息孤岛,提升应急抢险协作能力,加强水利数据在惠民信息化方面的应用。同时,提出了共享联动化、解决信息安全问题、提高水利信息科技创新能力等目标。 智慧水利建设模式 智慧水利的建设模式包括构建统一平台、数据中心、信息整合平台、决策支持系统等,以实现水利、海洋、环保等政府部门和公众的信息共享和服务。此外,还包括了云计算虚拟化、网络传输、采集工程等多个方面的技术应用。 智慧水利应用实例 智慧水利的应用实例包括视频水文工程监控、多要素一体化检测设备、汛情预警智能联动、三防决策指挥、河长综合信息展示等。这些应用通过集成GIS、互联网地图服务、物联网设备等技术,实现了对水利设施的实时监控、数据分析和应急响应。 成功案例与展望 智慧水利的成功案例展示了通过视频监控、预警信息发布、移动办公信息APP等技术,有效提升了灾害应对能力、水资源管理和河长制的实施效果。这些案例表明,智慧水利的建设不仅提高了水利管理的效率和水平,也为未来的水利信息化发展提供了方向。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值