捡起python|Day2|牛客刷题|if语句|错误与异常|python数据类型

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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值