Day1-用户输入及字符串格式化输入

1.用户输入--input和getpass函数

2.字符串的格式化

#############################################

一、用户输入--input()函数

#!/usr/bin/env python
#-*- coding:utf-8 -*-

#name = raw_input("what is your name?") #only on python2.x
name = input("what is your name:") #input函数输入的是字符串格式
print("Hello " + name)

举例1:猜年龄

age_of_oldboy = 56
guess_age = int(input("The age guessed:"))  #input输入的是字符串,如果与整型进行比较,必须进行类型转换
if guess_age == age_of_oldboy:
    print("恭喜你,猜对了")
elif guess_age > age_of_oldboy:
    print("猜大了")
else:
    print("猜小了")

举例2:密码密文输入

 1 import getpass
 2 _username='tom'
 3 _password='123456'
 4 username=input("username:")
 5 #password=getpass.getpass("pasword:")   #密文输入
 6 password=input("password:")             #明文输入
 7 
 8 if _username==username and _password==password:
 9     print("Welcome user {name} login...".format(name=username))  #字符串的格式化输出
10 else:
11     print("Invalidusernameorpassword")

执行结果:

username:tom
password:123456
Welcome user tom login...

二、字符串的格式化

1 >>> print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99}) #元组的方式
2 I'm Vamei. I'm 99 year old

"I'm %s. I'm %d year old" 为模板。%s为第一个格式符,表示一个字符串;%d为第二个格式符,表示一个整数。('Vamei', 99)的两个元素'Vamei'和99为替换%s和%d的真实值。 
在模板和tuple之间,有一个%号分隔,它代表了格式化操作。
1 >>> print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})  #字典的方式
2 I'm Vamei. I'm 99 year old

格式符:Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。

%s    字符串 (采用str()的显示)

%r    字符串 (采用repr()的显示)

%c    单个字符

%b    二进制整数

%d    十进制整数

%i    十进制整数

%o    八进制整数

%x    十六进制整数

%e    指数 (基底写为e)

%E    指数 (基底写为E)

%f    浮点数

%F    浮点数,与上相同

%g    指数(e)或浮点数 (根据显示长度)

%G    指数(E)或浮点数 (根据显示长度)

%%    字符"%"

1 >>> print("%+10x" % 10) #16进制输出,左移10位
2         +a
3 >>> print("%04d" % 5)  #数字5左移4位,前面添加0
4 0005
5 >>> print("%6.3f" % 2.3) #浮点数2.3以小数点3位,并且占位6个字符
6  2.300
>>> print("%.*f" % (4, 1.2))
1.2000

需求:打印如下格式的字符串

info='''
------------infoof$--------------
Name:
Age:
Job:
Salary:
'''

 解决1:

 1 name=input("name:")
 2 age=input("age:")
 3 job=input("Job:")
 4 salary=input("Salary:")
 5 
 6 info='''
 7 ------------infoof%s--------------
 8 Name:%s
 9 Age:%d   #写%d而不是%s,帮助检测是不是整数
10 Job:%s
11 Salary:%s
12 '''%(name,name,age,job,salary)  #这的参数必须跟%s等占位符个数、顺序一样
13 print(info)

解决2:

 1 name=input("name:")
 2 age=int(input("age:"))#integer默认输入是字符串,强制把字符串转换成整型
 3 print(type(age))
 4 job=input("Job:")
 5 salary=input("Salary:")
 6 
 7 info='''
 8 ------------infoof%s--------------
 9 Name:%s
10 Age:%d
11 Job:%s
12 Salary:%s
13 '''%(name,name,age,job,salary)
14 print(info)

解决3:

 1 name=input("name:")
 2 age=int(input("age:"))#integer
 3 job=input("job:")
 4 salary=input("salary:")
 5 
 6 info2='''
 7 ------------infoof{_name}--------------
 8 Name:{_name}
 9 Age:{_age}
10 Job:{_job}
11 Salary:{_salary}
12 '''.format(_name=name,
13 _age=age,
14 _job=job,
15 _salary=salary)
16 
17 print(info2)

总结三种:

 1 name=input("name:")
 2 age=int(input("age:"))#integer
 3 job=input("job:")
 4 salary=input("salary:")
 5 
 6 info1='''
 7 ------------infoof%s--------------
 8 Name:%s
 9 Age:%d
10 Job:%s
11 Salary:%s
12 '''%(name,name,age,job,salary)
13 
14 info2='''
15 ------------infoof{_name}--------------
16 Name:{_name}
17 Age:{_age}
18 Job:{_job}
19 Salary:{_salary}
20 '''.format(_name=name,
21 _age=age,
22 _job=job,
23 _salary=salary)
24 
25 info3='''
26 ------------infoof{0}--------------
27 Name:{0}
28 Age:{1}
29 Job:{2}
30 Salary:{3}
31 '''.format(name,age,job,salary)
32 
33 print(info3)
原文地址:https://www.cnblogs.com/wolfs685/p/6718100.html