十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

python入门到实践:第2章-5.用户输入和while循环

python入门到实践:第2章-5.用户输入和while循环 input()函数函数的工作原理input()函数会致使程序暂停运转, 去等候用户给出指令或者信息, 在得到用户输入之后呀, 会依据用户输入为此 将其赋予给一个变量以便用于使用示例为例如。input()函数会接收一个参数, 这个参数是要向用户显示的提示词, 它的作用是让用户指定该输入什么样的内容这一情况。在上述里的示例当中, 当运行第一行的代码之际, 用户会看到提示请输入你的名字: 这种提示。程序会暂停, 处于等待用户输入的状态, 并且在用户按下回车键的时候, 程序会继续运行下去。用户的输入会被赋值给变量name, 之后程序会把print(f你好,{name})的输出显示给用户显示出来。【1】编写清晰的提示每逢运用input()函数之际, 均得指明清楚的提示语, 以便让用户知晓自身所需输入怎样的信息。只要是能够点明用户应当输入何种信息的任一提示皆可, 比如:通过在提示词后面添加空格可将提示与用户输入分开有时, 提示词兴许会超出一行, 鉴于你得向用户阐释要其输出指定内容的缘由。在此种情形下, 可率先把提示词赋予一个变量, 随后将这个变量传送给input()函数:选取其中一行的消息, 把它赋予给一个变量, 接着在第二行, 基于这个变量, 进行换行并追加提示词, 随后把这个变量传送给input()函数, 这是创建多行提示词的办法。【2】使用int()来获取数值输入在使用input()函数时会将用户输入解读为字符串是22这个数字, 然而当去查看变量age的那种类型的时候, 它所返回的是str类型, 要是该变量仅仅是用来进行打印输出操作的话, 问题倒不是很大, 可是当得把该变量当作数字去加以使用的时候, 就会出现报错的情况:要去解决此问题, 得运用int()函数, 把输入的字符串, 转变为整数类型。针对实际应用里, 运用int()函数的情况, 举例而言, 判定一个人是不是符合去乘坐过山车的身高条件:【3】求模运算符要处理数值信息之时, 求模运算符%属于一个颇为有用的工具, 其能够把两个数进行相除, 进而返回余数。 4 % 3 1 5 % 3 2 6 % 3 0 7 % 3 1 求模运算符, 不会去指出, 一个数是另一个数的, 具体多少倍, 它只会去指出, 余数究竟是多少。假如存在一个数, 它能够被另外一个数整除, 那么余数即为0, 所以求模运算会返回0, 能够借助这一点去判别一个数究竟是奇数还是偶数。能够被2整除的数都是偶数, 借助对一个数去对2开展求模运行, 能够判别出一个数到底是奇数亦或是偶数。#练习1 car input(Poease enter the car you want to rent: ) print(fthe car you want to rent is----{car.title()}) #练习2 poeple input(请问有多少人要用餐 ) poeple int(poeple) if poeple 8: print(没有空位) else: print(还有空位) #练习3 number input(请输入一个数字 ) number int(number) if number % 10 0: print(这个数是10的倍数) else: print(这个数不是10的倍数)while循环针对集合里的每一个元素, 执行一个代码块时会用到for循环, 然而while循环呢, 它会持续不断地运行, 一直到指定的条件不再被满足的时候才停止。【1】使用while循环能够运用while进行数数, 举例来说, 借助while循环针对从1开始数直至5这样一个状况:把1赋予成变量的值, 以此来确定从1开始计数, 紧接着设定while循环的条件, 只要是小于或者等同于5, 那就去执行循环, 在执行循环期间每次都打印并且自增1, 一直到不符合条件的时候才停止循环。【2】让用户选择终止程序能够运用while循环程式, 于用户愿意持续运行之际, 持续不断运行起来, 再设置一个退出的数值, 于用户不期望程序继续开展执行动作之时, 能够输入此数值, 以此终止程序。首先, 去定义一条提示消息, 此消息用于告知用户, 存在着两个选择, 其一为输入一条消息, 其二为输入退出值。接着, 去创建变量name, 用途是记录用户输入的值。之后, 去创建while循环, 对循环条件进行设置, 还要输入在循环过程当中要执行的代码。【3】使用标志就在上述所讲的示例当中, 我们是致使程序于满足明确指定的条件之际去履行特定给定的任务。然而, 在复杂程度颇高的程序里面, 会存在非常多各种各样不同类型的事件, 进而致使程序停止其运行状态。在这样一种情况之下, 又究竟该采取怎样的做法?此时, 于需满足诸多条件才会继续运行的程序那里, 可以去定义一个变量, 此变量用于判定整个程序是不是处于存活状态。而这个变量就被叫为标志(flag)。其作充当程序员的信号灯而存在。比如说, 能够在程序标志是True之际继续运行, 且在任何致使标志值成为False的事件出现时让程序终止运行。如此一来, 在while语句当中就需要核查一个条件: 标志当前的值是不是为True。接着把所有的检测是不是发生了会将标志值设定成False的那类事件放置于其他地方。和上一个, 将条件测试直直放到while语句里的示例不一样, 这个程序是用一个标志, 来表明程序是不是处在存活状态的。如此一来, 在添加测试, 像elif语句, 去核查是不是发生了致使标志变成False的事件时, 就会变得很简便。【4】使用break退出循环不理会条件测试呈现的怎么样 的试验结果情形 处于如何 的情形环境 ,期望准备立即地马上 退出脱身 while的循环 不再去运行 循环之中 剩余的遗留的 代码 能够可以 使用采用 break语句 break这个关键语句 针对用来 控制支配 程序的流程 能够可以 被用于用来 控制支配 哪些代码的行 将会将要 执行运行 哪些代码 不会不 执行运行 进而从而 可使让程序按依照 你心中所想的要求 去执行运行 程序 比如例如:上述示例里面针对循环条件用while True来进行设置, 让循环持续不断地去执行, 一直到遇见break语句才停止。要是用户输入了q, 那么就会引发break语句的执行, 以此实现退出该循环的操作。留意, 于全部的循环里面, 均能够运用break语句 , 举例说, 能够借助break语句去退出遍历列表的for循环, 以及退出遍历字典的for循环。【5】在循环中使用要是想要返回循环之所起头的地方, 且依据条件测试得出的结果来判定是否进而执行循环的话, 能够运用语句, 它和不像break那样马上完结整个循环的运转情形。举例来讲, 仅仅把1到10之中的奇数给打印出来呢:首先, 把它设置成0, 因为它是比10小的, 程序会进入while循环。进到循环里头之后, 追加1回, 这时候的值变成1。接下来, if语句去检查跟2进行运算的结果,以此来判断是不是要重新开始循环一番,或者打印它的值, 一直到它的值持续被追加到10的时候, 才会退出循环。【6】避免无限循环每一个while循环, 都必然得存在能够使其结束运行的路径, 以此才不至于无休止地进一步执行下去, 比如说:x 1 while x 5: print(x) x 1如果把x 1代码漏写了程序将无休止的运行下去#程序不会结束 x 1 while x 5: print(x)程序要是陷入到持续运行无终止的循环状态里, 能够通过按下Ctrlc这个组合键来使程序停止运行, 或者选择关闭终端窗口。#练习1 pizza_toppings [] while True: toppings input(请输入你要点的披萨配料q退出) if toppings q: break else: pizza_toppings.append(toppings) print(pizza_toppings) #练习2 while True: age input(请输入你的年龄输入q退出购票系统 ) if age q: break age int(age) if age 3: print(你可以免费观看电影) elif 3 age 12: print(你需要交10美元购买电影票) elif 12 age: print(你需要交15美元购买电影票)使用while循环处理列表和字典循环方式中, for循环是一种能有效遍历列表的方式, 不过一般情况下, 在while循环中执行修改列表操作是不被允许的要不然就会造成难以跟踪其中元素索引的状况发生, 而当需要结合遍历列表以及修改列表这两个操作时, while循环就能够发挥作用了。【1】在列表之间移动元素假设存在一个列表, 该列表里包含着新注册的、然而还没有经过验证的用户。那么要怎样在对用户进行验证这个行为操作的时候, 把那些从未验证的由列表所包含的用户从该列表之中提取出来呢:#首先创建一个等待验证的用户列表和一个用于存储已经验证过用户的空列表 un_users [alice,brian,candace] cn_users [] while un_users: #验证每个用户直到没有用户为止 dd_users un_users.pop() #每次从列表末尾删除一个变量并将该删除的变量进行赋值 print(fVerifying user:{dd_users.title()}) cn_users.append(dd_users) #显示所有已经验证的用户 print(\nthe following users have been confirmed:) for x in cn_users: print(x)为了模拟验证过程在循环结束时打印一条消息【2】删除列表中重复的元素当在前面运用()方法以删除列表里的指定值之际, 之所以全部可行, 是由于指定的值于列表当中仅出现过一回。要是打算删除重复的特定值, 那就得创建循环来实施删除:首先去创建一个有着多个会重复出现的元素的列表, 依照这个特定的元素是不是在列表当中作为条件, 来设置循环。要是这个特定的元素在列表里的话, 那就进入循环, 进而把该元素给删除掉的一直到列表里头不存在这个元素的时候, 再去终止循环。【3】使用用户输入填充字典可以借助while循环以便用来提示用户能够输入数目任凭的信息, 比如说, 造就一个用作调查的程序, 在这个程序里有着这样一个循环用于在每次作执行之时, 提醒着输入开展调查的调查对象的名字以及其回答, 然后, 我们会把关于此项调查所获得的信息存放进字典之中:repponses {} polling_active True #设置一个标志词指定调查是否继续 while polling_active: #提示输入被调查者的名字和回答最喜欢爬哪座山 name input(f\nwhat is your name? ) response input(which mountain would you like to climb someday? ) #将回答存储在字典中 repponses[name] response #看是否还有人要接受调查 repeat input(would you like to let another person respond?(yes/no) ) if repeat no: polling_active False #调查结束显示结果 print(\n---------------poll results------------------) for name, resp in repponses.items(): print(f{name} would like to climb {resp})练习1sandwich_orders [tuna, turkey, ham, veggie] finished_sandwiches [] while sandwich_orders: current sandwich_orders.pop(0) print(fI made your {current} sandwich.) finished_sandwiches.append(current) print(\nAll sandwiches are ready:) for sandwich in finished_sandwiches: print(f- {sandwich})练习 2sandwich_orders [pastrami, tuna, pastrami, turkey, pastrami, ham] finished_sandwiches [] print(Sorry, the deli has run out of pastrami.) while pastrami in sandwich_orders: sandwich_orders.remove(pastrami) while sandwich_orders: current sandwich_orders.pop(0) print(fI made your {current} sandwich.) finished_sandwiches.append(current) print(\nFinished sandwiches:) for sandwich in finished_sandwiches: print(f- {sandwich})练习 3responses {} polling_active True while polling_active: name input(\nWhat is your name? ) place input(If you could visit one place in the world, where would you go? ) responses[name] place repeat input(Would you like to let another person respond? (yes/no) ) if repeat.lower() no: polling_active False print(\n--- Poll Results ---) for name, place in responses.items(): print(f{name} would like to visit {place}.)
返回列表