python自定义异常类判断输入的字符串长度是否小于6_python自学笔记,Python

目录

一、基础知识

1、变量

变量是表示(或指向)特定值的名称,python跟c/c++/java不同的是,变量的定义不用指定变量的具体类型,且变量使用前必须赋值,因为他没有默认值。如下定义了整形变量varInt的值为3,浮点型变量varFloat的值为3.2,字符串变量varStr值为SHEN。

varInt=3

varFloat=3.2

varStr="SHEN"

2、表达式

Python的除法运算,默认按照浮点型来计算,意思是不论是不是整形数据相除,都讲整形数据转换成浮点型来进行相除,最后的结果始终为浮点型。如下

A=10/3    #结果为3.3333333333333335

B=10/3.0  #结果为3.3333333333333335

如果想丢弃小数部分,可以使用运算符//来实现。如下:

A=10//3   #结果为3

B=10//3.0  #结果为3.0

如果想求模运算,可以使用运算符%来实现。如下:

A=10%3   #结果为1

B=10%3.0  #结果为1.0

如果想求幂运算,可以使用运算符**来实现。如下:

A=2**5        #结果为2的5次方,即32

B=-2**2       #结果为2的2次方的负数即-4。**运算符优先级高于-

C=(-2)**2     #结果为-2的2次方,即4

3、输入输出

Python可通过input函数来接受用户输入,但是该方式接收的输入全是按照字符串处理,python还可通过print函数来打印变量或其他的值。如下:

x=input("请输入x:")

#该语句将报错,因为所有输入的结果都是字符串类型,+运算符两侧类型不一样因此报错

y=x+10

#该语句先通过int将输入的字符串转换成整形数据,如果输入的整形数据会得到正确结果,否则转换失败程序报错

Z=int(x)+10

print可用于打印一个表达式,这个表达式要么是字符串,要么将自动转换为字符串。但实际上,你可

同时打印多个表达式,且用逗号分隔它们,

print

将按照它们的顺序依次转换成字符串并打印出来且用空格分开。

如下:

var=10

str="shen"

print(var,"xxx",str,'s' in str)#输出结果:10 xxx shen True

print还可以指定一些属性,其格式:

属性名称

=

字符串

,例如属性sep表示print将所有参数用后面的字符串串联起来;属性end表示结尾跟上后面指定的字符串如下示例:

print("I", "am", "SHEN") #输出结果:I am SHEN

print("I", "am", "SHEN",sep="-") #输出结果:I-am-SHEN

print("I", "am", "SHEN",sep="-",end="###") #输出结果:I-am-SHEN###

4、赋值

赋值,即将某个值赋给一个变量,跟其他语言一样,通过=来进行。Python除了普通的赋值外,还支持同时对多个变量进行赋值。

1)、序列解包

序列解包又叫可迭代对象解包),

将一个序列(或任何可迭代对象,包括字典、字符串、列表、元组)解包,并将得到的值存储到一系列变量中

。如下:

#对元组进行解包

var=(1,2,3)

x,y,z=var

print(x,y,z) #xyz的值分别为元组的1 2 3

#对字符串进行解包

var="shen"

a,b,c,d=var

print(a,b,c,d) #abcd的值分别为字符串s h e n

#对字典进行解包

var={'name': 'Robin', 'home': 'chengdu'}

#a,b,c,d=var #不能直接对字典进行解包

#对字典项进行解包

key, value = var.popitem()

print(key,value) #key和value的值分别为home和chengdu

解包的

序列包含的元素个数必须与你在等号左边列出的目标个数相同

,否则Python将引发异常。为了解决这样的问题,python还提供了运算符*,可使用星号运算符*来收集多余的值,这样无需确保值和变量的个数相同。需要注意的是

*

修饰的变量直接被当成了列表类型

来处理。如下:

var=(1,2,3,4,5)

x,y,*z=var

print(z) #输出结果:[3, 4, 5] 即使var是非列表,被*修饰的z最后返回的值还是列表

x,*y,z=var

print(z) #输出结果:5

*x,y,z=var

print(x) #输出结果:[1, 2, 3]

2)、链式赋值

链式赋值是一种快捷方式,用于将多个变量关联到同一个值,

即将一个值同时赋值到不同的变量中

,跟上面序列解包的区别就是序列解包是多个值赋值给多个变量。如下:

x=y=somefunction()#跟下面等价

y=somefunction()

X=y

3)、增强赋值

增强赋值跟c/c++/java的+ - * /  %等运算符的简写模式。

二、数据结构

Python支持一种数据结构的基本概念为容器,容器可以理解成包含其他对象的对象。容器包含了

序列、映射、集合

三种数据结构。

序列:

序列中的每个元素都有编号

,即位置或者索引。序列又有

字符串、列表、元组

三种类型。

映射:

映射中的每个元素都有键

,即名字注意没有编号。映射的容器主要是字典。

集合:既不是序列也不是映射。

1、序列

序列中的每个元素都有编号,其中字符串是一种特殊的序列,而列表是一种可以对其元素编号或者元素成员的值进行修改的序列,元组是一种不可以对其元素编号或者元素成员的值进行修改的序列。

字符串

:字符串始终使用

单引号或者双引号

来将其括起来。个人认为,在解析的时候先确认字符串的开头是”还是’,如果已经确认是单引号还是双引号,那么就会查找第二个”或’来作为字符串的结束。

varStr1="I am DingPC"

varStr2='I am DingPC'

print("诸神黄昏") #输出结果:诸神黄昏

print('诸神黄昏') #输出结果:诸神黄昏

print("诸'神黄'昏") #输出结果:诸’神黄’昏

print('诸"神黄"昏') #输出结果:诸”神黄”昏

print('诸神""""黄昏') #输出结果:诸神”””黄昏

print("诸神’’’黄昏") #输出结果:诸神’’’黄昏

如上代码可以总结如下:即被双引号扩起来的字符串内部可以使用任意个单引号;被单引号括起来的字符串内部可以使用任意个双引号;特殊字符包括单引号双引号可以使用\进行转义。同java一样,可以使用+运算符进行字符串拼接。具体详情见后。

列表

:列表也是一种序列,并且可以对其进行修改,即序列的所有特性及序列的通用操作方式都能够应用于列表。列表的创建通常是由

中括号

[]

将元素成员括起来。

varList1=[1,2,3,4,5,6,7] #定义列表varList1,其元素成员全是整形数据

varList2=["shen", "ding", "pengcheng"] #定义列表varList2,其元素成员全是字符串数据

varList3=[1,2,3,"dpc",5,6,"xyc"]#定义列表varList3,其元素成员有字符串数据也有整形数据

varStr="shen"

varInt=7

#定义列表varList,初始化的时候可以直接将变量作为元素成员

varList=[1,2,3,varStr,5,6,varInt,8]

#列表进行初始化的时候没有使用类似指针方式,这里重新赋值后,列表里面的元素没有更改

varStr="xxx"

Print(varList)#结果:[1, 2, 3, 'shen', 5, 6, 7, 8]

元组

:元组的创建通常是由

小括号

()

将元素成员括起来。元组也是一种序列,但是一旦被初始化就无法对其进行修改,即元组的某些特性及通用操作方式不能够应用于元组,例如:元组Tuple就没有提供append()、insert()、pop()方法。

varTuple1=(1,2,3,4,5,6,7)

varTuple2=(1,2,3,"dpc",5,6,"xyc")

varStr="shen"

varInt=7

#定义列表varList,初始化的时候可以直接将变量作为元素成员

varTuple=(1,2,3,varStr,5,6,varInt,8)

#列表进行初始化的时候单纯的将其值获取出来对序列进行初始化

varStr="xxx"

Print(varTuple)#结果:(1, 2, 3, 'shen', 5, 6, 7, 8)

1.1、通用操作

1)、索引

序列中的所有元素都有编号都是从0开始递增,这称为索引(indexing)。你可使用索引来获取元素。这种索引方式适用于所有序列。当你使用负数索引时,Python将从右(即从最后一个元素)开始往左数,因此-1是最后一个元素的位置,-2是倒数第二个元素的位置,依次类推。

varList=[1,2,3,4,5,6,7]

varList[0]='x'

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值