不同python版本的运算符号
python2.x
结果取整
>>> 5/2
2
>>> 3/10
0
至少有一个为浮点型,结果就为浮点型
>>> 5/2.0
2.5
>>> 5.0/2
2.5
python3.x
结果不取整,除下来是什么就是什么
>>> 5/2
2.5
>>> 3/10
0.3
>>> 5/2.0
2.5
>>> 100/300
0.3333333333333333
取余
>>> 5%2
1
>>> 3%10
3
python3.x取整
>>> 5/2
2.5
>>> 5//2 ##使用 // ,结果取整
2
自增
>>> a=1
>>> a+=1 ##a=a+1
>>> a
2
>>> a
2
数据类型
整型
>>> a = 6
>>> print(a)
6
查看变量的类型
>>> type(a)
<class 'int'>
浮点型
>>> b = 1.0
>>> print(b)
1.0
>>> type(b)
<class 'float'>
字符串型
>>> c = westos ##格式错误,应用''将其引起来
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'westos' is not defined
>>> c = 'westos'
>>> print(c)
westos
>>> c = "what's"
>>> print(c)
what's
>>> c = 'what's' ##报错
>>> c = 'what\'s' ##转义
>>> print(c)
what's
bool型(只有两个值:True False 非0即真)
>>> a = 1
>>> bool(a)
True
>>> b=0
>>> bool(b)
False
>>> bool('')
False
>>> bool(' ')
True
>>> bool('redhat')
True
数据类型之间的转换
【1】整形int的转换
>>> a = 1
>>> type(a)
<class 'int'> #整形
>>> float(a) ##转换为浮点型
1.0
>>> str(a) ##转换为字符串
'1'
【2】浮点型float的转换
>>> b = 6.0
>>> type(b) ##浮点型
<class 'float'>
>>> int(b) ##转换为整形
6
>>> str(b) ##转换为字符串
'6.0'
【3】字符串str的转换
>>> c='123'
>>> type(c)
<class 'str'> ##字符串
>>> int(c) ##转换为整形
123
>>> float(c) ##转换为浮点型
123.0
>>> c = 'redhat' ##不能转换为整形和浮点型
>>> int(c)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'redhat'
>>> float(c)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: 'redhat'
在内存中删除一个变量
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
input():输入
print():输出
【1】 python3.x
input():接收任意数据类型
python3.x中没有raw_input()
>>> input('Num:')
Num:hedan
'hedan'
输入内容
##(1)显示输入内容
>>> input('Passwd:')
Passwd:123
'123'
## (2)输入内容不回显
>>> import getpass
>>> num = getpass.getpass('请输入密码:')
请输入密码:
>>> print(num)
123
【2】python2.x
input():只支持正确的数值类型
raw_input():数值和字符串
【1】input():只支持正确的数值类型
>>> input('num:')
num:2.0 ##浮点
2.0
>>> input('num:')
num:1 ##整数
1
>>> input('num:')
num:hedan ##报错,不是正确的数值类型
【2】raw_input():数值和字符串
>>> raw_input('num:')
num:hedan
'hedan'
>>> raw_input('num:')
num:2
'2'
>>> raw_input('num:')
num:6.0
'6.0'
如果接收到的数值要进行比较的时候,一定要转换为同一种类型
>>> age = input('age:')
age:20
>>> age
'20'
>>> type(age)
<class 'str'>
>>> age > 21 ##报错,浮点型不能和整形进行比较,不是同一种类型
修正:将浮点型转换为整形
>>> int(age) > 21
False
>>> age = int(input('age:')) ##输入的时候直接以整形int输出
age:20
格式化输出
%s:代表字符串
%d:整型
%f:浮点型
字符串
【1】
>>> name = 'hedan'
>>> name
'hedan'
>>> age = 20
>>> age
20
>>> print('%s的年龄是%d' %(name,age))
hedan的年龄是20
【2】
>>> age=20.0
>>> print('%s的年龄是%d' %(name,age)) ##将20.0取整
hedan的年龄是20
>>> age = '20'
>>> print('%s的年龄是%d' %(name,age)) ##报错,因为'20'为浮点型,
浮点型
%.xf ##小数点后面的位数为x位,x<=6
%f ##小数点后面为6位
>>> num=1234.5678
>>> name='yibo'
>>> print('%s的数字是%f' %(name,num))
yibo的数字是1234.567800 ##默认小数点后面是6位
>>> print('%s的数字是%.1f' %(name,num))
yibo的数字是1234.6
>>> print('%s的数字是%.2f' %(name,num))
yibo的数字是1234.57
整数的占位:不够的位数 前面补0
000%d ##数字前面补3个0,有多少个0,就补多少
%.xd ##数字前面补 x 个0
>>> sid = 6
>>> name = 'hedan'
>>> print('%s的学号为000%d' %(name,sid))
hedan的学号为0006
>>> print('%s的学号为%.5d' %(name,sid))
hedan的学号为00006
>>> sid = 100
>>> print('%s的学号为%.5d' %(name,sid))
hedan的学号为00100
百分号的实现
%% :输出%
%.2f%% ##数字有2位小数,且加%
(per*100 )##per的值乘100后的生成的值
>>> per=0.1
>>> print('比例是:%f' %(per))
比例是:0.100000
>>> print('比例是:%.2f' %(per))
比例是:0.10
>>> print('比例是:%.2f' %(per*100))
比例是:10.00
>>> print('比例是:%.2f%%' %(per*100)) ##per*100的结果,两位小数,且加%号
比例是:10.00%
>>> print('比例是:%f%%' %(per*100))
比例是:10.000000%
>>> print('比例是:%d%%' %(per*100))
比例是:10%
练习
求平均成绩(python3解释器)
#- 输入学生姓名;
#- 依次输入学生的三门科目成绩;(语文 数学 英语)
#- 计算该学生的平均成绩, 并打印;
#- 平均成绩保留一位小数点;
#- 计算该学生语文成绩占总成绩的百分之多少?并打印。eg: 78%;
vim 输入输出练习.py
NAME =input('请输入学生姓名:')
语文 =float(input('语文成绩:'))
数学 =float(input('数学成绩:'))
英语 =float(input('英语成绩:'))
print('%s的平均成绩为%.1f' %(NAME,(语文+数学+英语)/3))
print('%s学生的语文占总成绩的百分比为:%.2f%%' %(NAME,(语文)/(语文+数学+英语)))
python3 输入输出练习.py ##运行
结果:
请输入学生姓名:hedan
语文成绩:98
数学成绩:63.6
英语成绩:100
hedan的平均成绩为87.2
hedan学生的语文占总成绩的百分比为:0.37%