玩命加载中 . . .

python-while循环


7.1 函数input()的工作原理

In [1]:

message = input("Tell me something,and I will repeat it back to you: ")

print(message)
Tell me something,and I will repeat it back to you: Hello
Hello

7.1.1 编写清晰的程序

In [2]:

name = input("Please enter your name: ")

print("Hello, " + name + "!")
Please enter your name: Edgar
Hello, Edgar!

In [3]:

prompt = "If you tell us who you are, we can personalize the message you see."

prompt += "\nwhat is your first name? "

name = input(prompt)

print("Hello, " + name + "!")
If you tell us who you are, we can personalize the message you see.
what is your first name? Edgar
Hello, Edgar!

7.1.2 使用int()来获取数值的输入

In [4]:

age = input("How old are you? ")

age
How old are you? 23

Out[4]:

'23'

In [5]:

age = input("How old are you? ")

age >= 18
How old are you? 19
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-677716768126> in <module>
      1 age = input("How old are you? ")
----> 2 age >= 18

TypeError: '>=' not supported between instances of 'str' and 'int'

In [6]:

age = input("How old are you? ")

age = int(age)

age>=18
How old are you? 19

Out[6]:

True

In [7]:

# 判断一个人是否满足过山车的身高要求

height = input("How tall are you, in inches? ")

height = int(height)

if height>=36:

    print("\nYou're tall enough to ride!")

else:

    print("\nYou'll be able to ride when you're a little older.")
How tall are you, in inches? 37

You're tall enough to ride!

7.1.3 求模运算符

In [8]:

4%3

Out[8]:

1

In [9]:

5%3

Out[9]:

2

In [10]:

6%3

Out[10]:

0

In [11]:

number = input("Enter a number,and I'll tell you if it's even or odd: ")

number = int(number)

if number%2 == 0:

    print("\nThe number " + str(number) + " is even.")

else:

    print("\nThe number " + str(number) + " is odd.")
Enter a number,and I'll tell you if it's even or odd: 5

The number 5 is odd.

7.2.1 使用while循环

In [12]:

current_number = 1 

while current_number <= 5:

    print(current_number)

    current_number +=1
1
2
3
4
5

7.2.2 让用户选择何时退出

In [13]:

prompt = "\nTell me something,and I will repeat it back to you :"

prompt +="\nEnter 'quit' to end the program."

message = ""

while message != 'quit':

    message = input(prompt)

    print(message)
Tell me something,and I will repeat it back to you :
Enter 'quit' to end the program.Hello everyone
Hello everyone

Tell me something,and I will repeat it back to you :
Enter 'quit' to end the program.Hello again
Hello again

Tell me something,and I will repeat it back to you :
Enter 'quit' to end the program.quit
quit

In [14]:

prompt = "\nTell me something,and I will repeat it back to you :"

prompt +="\nEnter 'quit' to end the program."

message = ""

while message != 'quit':

    message = input(prompt)

    if message != 'quit':

        print(message)
Tell me something,and I will repeat it back to you :
Enter 'quit' to end the program.quit

7.2.3 使用标志

In [15]:

prompt = "\nTell me something,and I will repeat it back to you :"

prompt +="\nEnter 'quit' to end the program."

active = True

while active:

    message = input(prompt)

    if message == 'quit':

        active = False

    else:

        print(message)
Tell me something,and I will repeat it back to you :
Enter 'quit' to end the program.quit

7.2.4 使用break退出循环

In [16]:

prompt = "\nPlease enter the name of a city you have visited: "

prompt +="\n(Enter 'quit' when you are finished.)"

while True:

    city = input(prompt)

    if city == 'quit':

        break

    else:

        print("I'd love to go to " + city.title() + "!")
Please enter the name of a city you have visited: 
(Enter 'quit' when you are finished.)New York
I'd love to go to New York!

Please enter the name of a city you have visited: 
(Enter 'quit' when you are finished.)San Francisco
I'd love to go to San Francisco!

Please enter the name of a city you have visited: 
(Enter 'quit' when you are finished.)quit

7.2.5 在循环中使用continue

In [17]:

#一个从1数到10,但只打印其中奇数的循环

current_number = 0

while current_number < 10:

    current_number += 1

    if current_number %2 ==0:

        continue

    print(current_number)
1
3
5
7
9

7.2.6 避免无限循环

In [18]:

x = 1

while x <= 5:

    print(x)

    x += 1
1
2
3
4
5

7.3.1 在列表之间移动元素

In [19]:

#首先,创建一个待验证用户列表

#和一个用于存储已验证用户的空列表

unconfirmed_users = ['alice', 'brian', 'candace']

confirmed_users = []

#验证每个用户,直到没有未验证用户为止

#将每个经过验证的列表都移到已验证用户列表中

while unconfirmed_users:

    current_user = unconfirmed_users.pop()

    print("verifying user: " + current_user.title())

    confirmed_users.append(current_user)

#显示所有已验证的用户

print("\nThe following users have been confirmed: ")

for confirmed_user in confirmed_users:

    print(confirmed_user.title())
verifying user: Candace
verifying user: Brian
verifying user: Alice

The following users have been confirmed: 
Candace
Brian
Alice

7.3.2 删除包含特定值的所有列表元素-remove()

In [20]:

pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']

print(pets)

while 'cat' in pets:

    pets.remove('cat')

print(pets)
['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
['dog', 'dog', 'goldfish', 'rabbit']

In [21]:

responses = {}

#设置一个标志,指出调查是否继续

polling_active = True

while polling_active:

    #提示输入被调查者的名字和回答

    name = input("\nWhat is your name? ")

    response = input("Which mountain would you like to climb someday? ")

    #将答卷存储在字典中

    responses[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,response in responses.items():

    print(name + " would you like to climb " + response + ".")
What is your name? Edgar
Which mountain would you like to climb someday? huang
Would you like to let another person respond?(yes/no)no

--- Poll Results ---
Edgar would you like to climb huang.

文章作者: Edgar
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Edgar !
评论
  目录