05-python的输入与输出

python输入(input)与输出(print)

一、输入(input)

在python3中,input会将接收到的用户输入自动存储为字符串类型

username = input('输入用户名:') # cuihua
print(username) # cuihua
print(type(username)) # <class 'str'>

age = input('输入年龄:') # 18
print(age) # 18
print(type(age)) # <class 'str'>

如果要用接收到的用户输入的数据进行运算时,需要进行类型转化

num1 = input('输入第一个数字:') # 10
num2 = input('输入第二个数字:') # 20

print(type(num1)) # <class 'str'>
print(type(num2)) #<class 'str'>

# 此时接收到的用户输入的数据都是字符串类型,但我们想对这两个数据进行相加,怎么做呢?
# 强制类型转化 --- 顾名思义,可以把一个数据类型转化成另一个数据类型
num1 = int(num1)
num2 = int(num2)

print(type(num1)) # <class 'int'>
print(type(num2)) #<class 'int'>

# 此时,两个字符串类型的数据就被我们转化成了整型数据,就可以相加了
# 验证:
print(num1+num2)

注:将字符串类型转化成整型的时候,只能把由整数组成的字符串转化成整型,其他都会报错

int('111')
# int('11.1') # 会直接报错
# int('11a11') # 会直接报错

二、输出(print)

print('一二三四五')
print('上山打老虎')

print可以向用户打印数据,但是如果要打印一些变量值和字符串的组合该怎么做呢?这就涉及到了字符串的格式化

字符串的格式化输出方法一:%s

name = 'cuihua'
age = 18

print('my name is %s' %name) # 只有一个变量时,可以直接在%后面加变量名
print('my name is %s,my age is %s' %(name,age)) # 当有多个变量时,%后面跟一个元祖,元祖里面写着变量名

# 扩展一:还可以以字典的形式传值(了解即可)
print('my name is %(name)s,my age is %(age)s' %{'name':'xiongda','age':18})

# 扩展二:%s可以接收任意类型的参数
print('%s' %1)
print('%s' %1.1)
print('%s' %'aaa')
print('%s' %[1,2,3])
print('%s' %{'name':'xiongda'})

# 注意:当接收元祖类型的参数时,元祖长度为几,前面的%s占位符就得为几个

字符串的格式化输出方法二:str.format()

该方法兼容性更好

# format后面跟着一个元祖,可以不指定下标,则按照默认顺序传值,也可以通过指定下标的方式传值
# 不指定下标进行传值
print('my name is {},my age is {}'.format('cuihua',18))

# 指定下标进行传值
print('my name is {1},my age is {0}'.format(18,'cuihua'))

# 也可以按照key=value的方式进行传值
print('my name is {name},my age is {age}'.format(age=18,name='cuihua'))

字符串的格式化输出方法三:f格式化

该方法python3.5之后才推出

name = 'cuihua'
age = 18
print(f'my name is {name},my age is {age}') # 注意,需要在字符串前面加f才能使用

三、f格式化字符填充

什么是填充?

当我们指定了字符串最终的长度时,如果现有的字符串没那么长,则使用我们指定的字符串去填满这个长度,这就是填充

name = 'cuihua'
age = 18

# 填充格式{变量名:t填充字符 对齐方式 指定长度}
# 对齐方式:左对齐(<),右对齐(>),居中对齐(^)
# 记忆方法:尖端向哪边,就朝哪边对齐

# 不指定填充字符就默认使用空格填充
print(f'my name is {name:>10},my age is {age:<10}') 
# my name is     cuihua,my age is 18        

# 指定字符就用指定的字符取填充
print(f'my name is {name:*>10},my age is {age:*<10}')
# my name is ****cuihua,my age is 18********

# 指定精度
salary = 123123.123456
print(f'{salary:.2f}') # 指定精度为2位,输出结果为123123.12

 

posted @ 2021-03-04 22:12  田彦龙  阅读(277)  评论(0编辑  收藏  举报