输入
input函数
# 将输入的内容以字符串的形式原封不动的赋给a
a = input("提示字符串:")
# 若输入“1+1”,则输出1+1,类型为str
print(a)
print(type(a))
# eval()可将输入的内容作为代码运行
# 若输入“1+1”,则输出2,类型为int
a = eval(a)
print(a)
print(type(a))
'''
若输入“b”,则报错,因为经过eval函数处理后,原语句相当于
a = b
会提示变量b未定义
'''
a = input("提示字符串:")
a = eval(a)
print(a)
print(type(a))
'''
运行结果
/Users/hanser/PycharmProjects/learning/venv/bin/python /Users/hanser/PycharmProjects/learning/main.py
提示字符串:1+1
1+1
<class 'str'>
2
<class 'int'>
提示字符串:b
Traceback (most recent call last):
File "/Users/hanser/PycharmProjects/learning/main.py", line 21, in <module>
a = eval(a)
File "<string>", line 1, in <module>
NameError: name 'b' is not defined
进程已结束,退出代码1
‘’‘
对eval函数进行测试
c = 5
a = input("提示字符串:")
'''
若输入“c”,原语句相当于
a = c
最后打印结果为5,类型为int
若输入“a”,原语句相当于
a = a
a在代码中有定义,不会报错
最后打印结果为a,类型为str
但是若将上述输入语句改为
a = eval(input("提示字符串:"))
输入“a”时会报错提示a无定义
我认为报错原因是eval函数在生效时,a还未定义完成
即先运行等号右边的代码,再赋值给“a”做定义
'''
a = eval(a)
print(a)
print(type(a))
输出
print(values, sep, end, file, flush)
vaulues | 输出的值,多个值之间用“,”分割,分割符号不会被输出 |
sep | 分割符,输出时值与值之间会添加指定的分割符 |
end | 输出完毕后以指定的符号结束,默认为换行符“\n” |
file | 输出目标,默认为控制台,也可是可写入的文件句柄 |
flush | 是否立即输出,为Bool类型数值,默认为“True” |
# 输出一个值
print(5)
# 输出一个变量
num = 4
print(num)
# 输出多个变量
num1 = 1
num2 = 2
print(num1, num2)
# 格式化输出
name = "UESTC"
age = 67
print("我的名字是%s,我的年龄时%d" % (name, age))
# 使用format函数将两个变量存进数组中
print("我的名字是{0},我的年龄时{1}".format(name, age))
# 输出到文件
# 打开文件,赋予“写”权限
f = open("test.txt", 'w')
print('测试输出内容', file=f)
# 输出不自动换行
print('输出不自动换行', end='')
# 输出多个数据,用自定义分割符划分
print(1, 2, 3, sep='+')
格式符:在输出时调整格式的参数
# %[(name)][flags][width][.precision]typecode
# 中括号中的部分可以省去,typecode必须保留,比如%d,%s
# [(name)]为变量命名 注意!有小括号!和其他格式符参数不同!
EnglishScore = 99
MathScore = 100
# 此时打印分数相反
print('我的数学分数是%d,我的英语分数是%d' % (EnglishScore, MathScore))
# 对输出变量进行命名,此时输出顺序正确
print('我的数学分数是%(Ms)d,我的英语分数是%(Es)d' % ({'Es': EnglishScore, 'Ms': MathScore}))
# [width]调整输出宽度
# [with] = 5,输出占用五个位置,默认用空格填充
print('%5d' % 43)
# [flags]表示对齐方式,默认右对齐,“-”表示左对齐
print('%-5d' % 43)
# [flags]还可用单个空格填充,通常用于对其负号
print('%d' % -15)
print('% d' % 23)
# [flags] = 0,表示空格用0来填充
min = 8
sec = 15
# 直接输出以空格填充
print('%2d:%2d' % (min, sec))
# 使用0来填充
print('%02d:%02d' % (min, sec))
# [.precision]表示精确到小数点后几位
score = 57.433
# %f表示浮点数float
print('%.2f' % score)
'''
常用的typeCode
%d 十进制
%o 八进制
%e 科学记数法
%g 自动调整输出整数、浮点数或者科学记数法
%s 字符串
%c unicode码
PS.若要在输出内容中输出百分号,用“%%”表示
'''