输入

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.若要在输出内容中输出百分号,用“%%”表示
'''