4.用户输入与输出
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!