str.isspace()检测字符串是否只由空白字符组成,只包含空格则返回 True,否则返回 False
一、if语句
#Python中使用and、or、not进行逻辑运算,C++ &&、||
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
if比较:==、!=、>=
if逻辑运算符
and:x and y布尔"与" —— x 为 False,x and y 返回 False,否则它返回 y 的计算值。
or:x or y布尔"或" —— x 是非 0,它返回 x 的值,否则它返回 y 的计算值。
not:not x布尔"非" —— x 为 True,返回 False 。如果 x 为 False,它返回 True。
result = True
if not result:
print("result is Flase")
else:
print("result is True")
math_score = 70
english_score = 30
if math_score > 60 or english_score >30:
print("成绩合格")
if成员(字符串,列表或元组)运算符:in/not in
names = ['Job','Bili','Laoyew','kety']
name = 'Kety'
if name.lower() in names:
print('存在')
else:
print('不存在')
存在
if name.upper() not in names:
print('不存在')
else:
print('存在')
不存在
二、
def func():
while True:
try:
input_list = input().strip().split()
print(len(input_list[-1]))
except Exception as e:
break
if __name__=="__main__":
func()
三、错误与异常
当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。
# 计算字符串最后一个单词的长度,单词以空格隔开。
while True:
try:
str = input()
if len(str)>=5000 or len(str)==0:#限定范围
raise Exception#如果引发exception那么后面的代码不会走到,但是except还是会执行
last= str.strip().split(' ')[-1]
last_len = len(last)
print(last_len)
break
except Exception:
print('长度大于5000,请重新输入!')
break#跳出while true
s = None
if s is None:
raise NameError
print 'is here?' #如果不使用try......except这种形式,那么直接抛出异常,不会执行到这里
try:
a = int(input("输入被除数:"))
b = int(input("输入除数:"))
c = a / b
print("您输入的两个数相除的结果是:", c )
except (ValueError, ArithmeticError):
print("程序发生了数字格式异常、算术异常之一")
except :
print("未知异常")
print("程序继续运行")
输入被除数:a
程序发生了数字格式异常、算术异常之一
程序继续运行
#自定义异常
class DivisionException(Exception):
def __init__(self, x, y):
Exception.__init__ (self, x, y) #调用基类的__init__进行初始化
self.x = x
self.y = y
if __name__ == "__main__":
try:
x = 3
y = 2
if x % y > 0: #如果大于0, 则不能被初始化,抛出异常
print x/y
raise DivisionException(x, y)
except DivisionException,div: #div 表示DivisionException的实例对象
print "DivisionExcetion: x/y = %.2f" % (div.x/div.y)
四、python数据类型
1.Number(数字) 包括:int,long,float,complex (python3不分int和long,统一int)
2.String(字符串) 例如:hello,"hello",hello
Python中的字符串有两种数据类型:str类型和unicode类型。str类型采用的ASCII编码,也就是说它无法表示中文。unicode类型采用unicode编码,能够表示任意字符,包括中文及其它语言。并且python中不存在像c语言中的char类型,就算是单个字符也是字符串类型。字符串默认采用的ASCII编码,如果要显示声明为unicode类型的话,需要在字符串前面加上'u'或者'U'。
ASCII编码适用英文字符,Unicode适用于非英文字符(例如中文、韩文等),而utf-8则是一种储存和传送的格式,是对Uncode字符的再编码(以8位为单位编码)。
#-*- coding: utf-8 -*-
u = u'汉'
print repr(u) # u'\u6c49'
s = u.encode('UTF-8')
print repr(s) # '\xe6\xb1\x89'
u2 = s.decode('UTF-8')
print repr(u2) # u'\u6c49'
3.List(列表) 例如:[1,2,3],[1,2,3,[1,2,3],4]
列表是一种可修改的集合类型,其元素可以是数字、string等基本类型,也可以是列表、元组、字典等集合对象,甚至可以是自定义的类型。
用索引的方式访问列表元素,索引从0开始,支持负数索引,-1为最后一个
>>> nums = [1,2,3,4]
>>> type(nums)
<type 'list'>
>>> print nums
[1, 2, 3, 4]
>>> strs = ["hello","world"]
>>> print strs
['hello', 'world']
>>> lst = [1,"hello",False,nums,strs]
>>> type(lst)
<type 'list'>
>>> print lst
[1, 'hello', False, [1, 2, 3, 4], ['hello', 'world']]
>>> lst = [1,2,3,4,5]
>>> print lst[0]
1
>>> print lst[-1]
5
>>> print lst[-2]
4
支持分片操作,可访问一个区间内的元素,支持不同的步长,可利用分片进行数据插入与复制操作
nums = [1,2,3,4,5]
print nums[0:3] #[1, 2, 3] #前三个元素
print nums[3:] #[4, 5] #后两个元素
print nums[-3:] #[3, 4, 5] #后三个元素 不支持nums[-3:0]
numsclone = nums[:]
print numsclone #[1, 2, 3, 4, 5] 复制操作
print nums[0:4:2] #[1, 3] 步长为2
nums[3:3] = ["three","four"] #[1, 2, 3, 'three', 'four', 4, 5] 在3和4之间插入
nums[3:5] = [] #[1, 2, 3, 4, 5] 将第4和第5个元素替换为[] 即删除["three","four"]
4.Dictionary(字典) 例如:{1:"nihao",2:"hello"}
字典类型是一种键值对的集合,类似于C#中的Dictionary<object,object>或js中的json对象。
dict1 = {}
print type(dict1) #<type 'dict'> 声明一个空字典
dict2 = {"name":"kitty","age":18} #直接声明字典类型
dict3 = dict([("name","kitty"),("age",18)]) #利用dict函数将列表转换成字典
dict4 = dict(name='kitty',age=18) #利用dict函数通过关键字参数转换为字典
dict5 = {}.fromkeys(["name","age"]) #利用fromkeys函数将key值列表生成字典,对应的值为None {'age': None, 'name': None}
#【添加元素】
dict1 = {}
dict1["mykey"] = "hello world" #直接给一个不存在的键值对赋值 即时添加新元素
dict1[('my','key')] = "this key is a tuple" #字典的键可以是任何一中不可变类型,例如数字、字符串、元组等
#【键值对个数】
print len(dict1)
#【检查是否含有键】
print "mykey" in dict1 #True 检查是否含有键为mykey的键值对
print "hello" in dict1 #False
#【删除】
del dict1["mykey"] #删除键为mykey的键值对
>>> [x for x in dir({}) if not x.startswith("__")]
['clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues',
'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']
5.Tuple(元组) 例如:(1,2,3,abc)
元组类型和列表一样,也是一种序列,与列表不同的是,元组是不可修改的
lst = (0,1,2,2,2)
lst1=("hello",)
lst2 = ("hello")
print type(lst1) #<type 'tuple'> 只有一个元素的情况下后面要加逗号 否则就是str类型
print type(lst2) #<type 'str'>
6.Bool(布尔) 包括:True、False
print bool(0) #False
print bool(1) #True
print bool(-1) #True
print bool([]) #False
print bool(()) #False
print bool({}) #False
print bool('') #False
print bool(None) #False