4.用户输入与输出

4.1 读取键盘输入:

name = input("what's u name:")
print("hello",name)

# 输出:
what's u name:carey
hello carey

4.2 Python3 与Python2中用户输入

Python3 中用户输入

  • input( )的输入都是字符串类型
  • 如果想将input( )里的内容,当作一个表达式去运行,使用eval( )
  • eval() 函数用来执行一个字符串表达式,并返回表达式的值。
>>> name = input("u name: ")
u name: carey

# 表达式
>>> eval(input("a + b = "))
a + b = 1 + 2
3

Python2 中用户输入

  • raw_input( ):以字符串类型输入;
  • input( ):根据输入内容判断数据类型(字符串输入需要加 " str " ),或当作一个表达式去运行;
>>> name = input("u name: ")
u name: carey
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'carey' is not defined
>>>
>>> name = input("u name: ")
u name: "carey"
>>> print(name)
carey
>>>
>>> age = int(input("age:"))
age:18
>>> print(type(age), type(str(age)))
(<type 'int'>, <type 'str'>)

# 表达式
>>> result = input("1 + 2 = ")
1 + 2 = 1 + 2
>>> print "result"
result
>>> print result
3
>>>

总结

  • python3.x中input() =python2.x中raw_input()
  • python2中的input()有些多余

4.3 格式化输出

4.3.1 默认

name = input("what's u name:")
passwd = input("u password:")

print("hello",name,passwd)

# 输出:
what's u name:carey
u password:fan
hello carey fan

4.3.2 “+string+”

name = input("what's u name:")
age = input("u age:")
job = input("u job:")
salary = input("u salary:")

info ='''
--- info of ''' + name +''' ---
Age:''' + age +'''
Job:''' + name +'''
Salary:''' + salary

print(info)

# 输出:
what's u name:carey
u age:27
u job:IT
u salary:3000

--- info of carey ---
Age:27
Job:carey
Salary:3000

4.3.3 “%s/d/f”

name = input("what's u name:")
age = input("u age:")
job = input("u job:")
salary = input("u salary:")

info ='''
--- info of %s ---
Age: %s
Job: %s
Salary: %s
''' % (name,age,job,salary)

print(info)

# 输出:
what's u name:carey
u age:27
u job:it
u salary:3000

--- info of carey ---
Age: 27
Job: it
Salary: 3000

4.3.4 “’_string’.format(_string=string)”

name = input("what's u name:")
age = input("u age:")
job = input("u job:")
salary = input("u salary:")

info ='''
--- info of {_name} ---
Age: {_age}
Job: {_job}
Salary: {_salary}
'''.format(_name=name,
           _age=age,
           _job=job,
           _salary=salary)

print(info)

输出:
what's u name:carey
u age:27
u job:it
u salary:3000

--- info of carey ---
Age: 27
Job: it
Salary: 3000

4.3.5 “{num}.format(str1,str2)”

name = input("what's u name:")
age = input("u age:")
job = input("u job:")
salary = input("u salary:")

info ='''
--- info of {0} ---
Age: {1}
Job: {2}
Salary: {3}
'''.format(name,age,job,salary)

print(info)

输出:
what's u name:carey
u age:27
u job:it
u salary:3000

--- info of carey ---
Age: 27
Job: it
Salary: 3000

4.4 多种数据类型输出

  • python3 中默认input为str类型

4.4.1 输入与输出类型不一致报错

name = input("what's u name:")
age = input("u age:")
print(type(age))
job = input("u job:")
salary = input("u salary:")

info ='''
--- info of %s ---
Age: %d
Job: %s
Salary: %s
'''%(name,age,job,salary)

print(info)

输出:
what's u name:carey
u age:27
<class 'str'>
u job:it
u salary:3000
Traceback (most recent call last):
    info ='''
TypeError: %d format: a number is required, not str

修正

name = input("what's u name:")
#age = input("u age:")
age = int(input("u age:")) #integer
print(type(age))
job = input("u job:")
salary = input("u salary:")

info ='''
--- info of %s ---
Age: %d
Job: %s
Salary: %s
'''%(name,age,job,salary)

print(info)

# 输出
what's u name:carey
u age:27
<class 'int'>
u job:it
u salary:3000

--- info of carey ---
Age: 27
Job: it
Salary: 3000

4.4.2 将整型改成字符串

name = input("what's u name:")
#age = input("u age:")
age = int(input("u age:")) #integer
print(type(age),type( str(age) ))
job = input("u job:")
salary = input("u salary:")

info ='''
--- info of %s ---
Age: %d
Job: %s
Salary: %s
'''%(name,age,job,salary)

print(info)

# 输出
what's u name:carey
u age:27
<class 'int'> <class 'str'>
u job:it
u salary:3000

--- info of carey ---
Age: 27
Job: it
Salary: 3000

4.5 练习

4.5.1 模拟用户登陆

getpass:密码隐藏输入
对输入的用户名与密码进行判断

import getpass
_username = 'carey'
_password = 'pass'
username = input("username: ")
#password = getpass.getpass("password: ")
password = input("passowrd: ")

if _username == username and _password == password:
    print("Welcome user {name} login...".format(name=username))
else:
    print("Invalid username of password!")

# 输出:
username: carey
passowrd:

username: carey
passowrd: pass
Welcome user carey login...

4.5.2 猜年龄直到猜出正确的退出

age_of_he = 25

while True:
    guess_age = int(input("guess age: "))
    if guess_age == age_of_he:
        print("yes, you got it! ")
        break
    elif guess_age > age_of_he:
        print("think smaller...")
    else:
        print("think bigger")


# 输出:
guess age: 20
think bigger
guess age: 25
yes, you got it! 

# 猜3次后退出
age_of_he = 25
count = 0
while True:
    if count == 3:
        break
    guess_age = int(input("guess age: "))
    if guess_age == age_of_he:
        print("yes, you got it! ")
        break
    elif guess_age > age_of_he:
        print("think smaller...")
    else:
        print("think bigger")
        count +=1
posted @ 2021-07-23 23:17  f_carey  阅读(3)  评论(0编辑  收藏  举报  来源