Python-用户交互

一、基本输入与输出

输入input 输出print,在python3中input会把输入内容存成字符串类型,在python2中
input用户输入什么类型,就存成什么类型,py2的raw_input等于python3的input。

二、格式化输出

2.1 %s与%d

程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式,
比如要求用户输入用户名和年龄,然后打印如下格式:
My name is xxx,my age is xxx.
很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。
这就用到了占位符,如:%s%d

#值按照位置与%s一一对应,少一个不行,多一个也不行
res="my name is %s my age is %s" %('sailan',"18")
print(res)# my name is sailan my age is 18
#以字典的形式传值,打破位置的限制
res="我的名字是 %(name)s 我的年龄是 %(age)s" %{"age":"18","name":'sailan'}
print(res)# 我的名字是 sailan 我的年龄是 18
#%s可以接收任意类型
print('my age is %s' %18)# my age is 18
print('my age is %s' %[1,23])# my age is [1, 23]
print('my age is %s' %{'a':333})# my age is {'a': 333}
# %d只能接收int
print('my age is %d' %18)# my age is 18
print('my age is %d' %"18")#报错: %d format: a number is required, not str

2.2 格式化输出之format

上面我们使用%s来做字符串的格式化输出操作,在传值时,必须严格按照位置与%s一一对应,而字符串的内置方法format则提供了一种不依赖位置的传值方式

# 案例:# format括号内在传参数时完全可以打乱顺序,但仍然能指名道姓地为指定的参数传值,name=‘tony’就是传给{name}
str4 = 'my name is {name}, my age is {age}!'.format(age=18,name='tony')
print(str4)  
# 'my name is tony, my age is 18!'

str4 = 'my name is {name}{name}{name}, my age is {name}!'.format(name='tony', age=18)
print(str4)
'my name is tonytonytony, my age is tony!'

#format的其他使用方式(了解)
# 类似于%s的用法,传入的值会按照位置与{}一一对应
>>> str4 = 'my name is {}, my age is {}!'.format('tony', 18)
>>> str4 
my name is tony, my age is 18!
# 把format传入的多个值当作一个列表,然后用{索引}取值
str4 = 'my name is {0}, my age is {1}!'.format('tony', 18)
print(str4)
# my name is tony, my age is 18!

str4 = 'my name is {1}, my age is {0}!'.format('tony', 18)
print(str4) 
# my name is 18, my age is tony!

str4 = 'my name is {1}, my age is {1}!'.format('tony', 18)
print(str4)  
# my name is 18, my age is 18!

2.3 格式化输出f“”(Python3.6新出的)

# 使用案例
name = "sailan"
age = 18
res1 = f"my name is {name} my age is {age}"
print(res1)
# my name is sailan my age is 18

# 了解:f搭配{}可以执行字符串中的代码
res=f'{len("hello")}'
print(res)
# 5

f'{print("hello")}'
# hello

# f包含的字符串可以放到多行
name = "sailan"
age = 18
res1 = f"my name is {name} " \
       f"my age is {age}"
print(res1)
# my name is sailan my age is 18

{}内不能有\以及#
print(f'my name is {{sailan}}')
# my name is {sailan}

print('胜率是 %s%%' %70)
# 胜率是 70%

三、待补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值