趣学PYTHON第5章2 none,字符串与数字间的不同
1.没有值
myval = None
print(None)
myv = 0
print(myv)
=================== RESTART: C:\Python27\lianxi\2018123.py ===================
None
0
没有变量的值和给0值是不一样的。
myval = None
print(None)
myv = 0
print(myv)
if myv == None:
print('myv没有值')
if myval == None:
print('myval没有值')
=================== RESTART: C:\Python27\lianxi\2018123.py ===================
None
0
myval没有值
2.字符串和数字
# -*- coding: utf-8 -*-
"""2018-1-23@author: linda"""
print('your age?')
age = 12
if age > 20:
print('age ,you are old')
age1 = '12'
if age1 > 20 :
print('age1,you are old')
=================== RESTART: C:\Python27\lianxi\2018123.py ===================
your age?
Traceback (most recent call last):
File "C:\Python27\lianxi\2018123.py", line 8, in <module>
if age1 > 20 :
TypeError: '>' not supported between instances of 'str' and 'int'
告诉你,str和int是不同的。
但是两者可以转换
# -*- coding: utf-8 -*-
"""2018-1-23@author: linda"""
print('your age?')
age = 12
if age > 20:
print('age ,you are old')
age1 = '21'
convage1= int(age1)
if convage1 > 20 :
print('convage1,you are old')
加了一行convage1 = int(age1)
把age1 str换成了int
同样可以convage = str(age)
# -*- coding: utf-8 -*-
"""2018-1-23@author: linda"""
print('your age?')
age1 = '12.5'
convage1= int(age1)
if convage1 > 20 :
print('convage1,you are old')
=================== RESTART: C:\Python27\lianxi\2018123.py ===================
your age?
Traceback (most recent call last):
File "C:\Python27\lianxi\2018123.py", line 5, in <module>
convage1= int(age1)
ValueError: invalid literal for int() with base 10: '12.5'
>>> 带小数点的字符串转换会出错。因为12.5是小数,不是整数
修改方法,用float()
convage1= float(age1)
ok 了
age1 = 'ten'
convage1= int(age1)
=================== RESTART: C:\Python27\lianxi\2018123.py ===================
Traceback (most recent call last):
File "C:\Python27\lianxi\2018123.py", line 4, in <module>
convage1= int(age1)
ValueError: invalid literal for int() with base 10: 'ten'
>>>
没有数字的字符串转换为数字也是错的,
课后题
1.
# -*- coding: utf-8 -*-
"""2018-1-23@author: linda"""
print('your money?')
money = 5000
if money < 2000:
print('you are not rich')
else:
print('you are rich')
=================== RESTART: C:\Python27\lianxi\2018123.py ===================
your money?
you are rich
2.
print('small cakes?')
cakes = 600
if cakes < 100 or cakes >500:
print('不是太多就是太少')
elif cakes>100 and cakes <500:
print('数量合适')
=================== RESTART: C:\Python27\lianxi\2018123.py ===================
small cakes?
不是太多就是太少
3.
print('money?')
money = 2000
if money > 100 and money < 500:
print('100<money<500')
elif money >1000 and money <5000:
print('1000<money<5000')
=================== RESTART: C:\Python27\lianxi\2018123.py ===================
money?
1000<money<5000
4.我打得过哪些忍者
ninjas = 20
print('ninjas?')
print(ninjas)
if ninjas < 10:
print('我打得过那些忍者')
elif ninjas <30:
print('有点难,但是可以应付')
elif ninjas <50:
print('太多了')
=================== RESTART: C:\Python27\lianxi\2018123.py ===================
ninjas?
20
有点难,但是可以应付
>>>
这个题目出的顺序有点问题。