1、基本类型与类型显示



(1)基本类型



print(type(1234))      #<class  'int'>,类型为整形
print(type(1234.32))   #<class  'float'>,类型为浮点类型
print(type(1234.))     #<class  'float'>
print(type('abc'))     #<class  'str'>



type(object)函数是用来显示object的类型的



(2)集合



print(type([1,2,3,‘a',’b']))    #<class  'list'>,列表类型
print(type((1,‘abc')))          #<class  'tuple'>,元组类型
print(type(set([1,2,3,‘a',’b'])))                #<class  'set'>,集合类型
print(type({'a':1,’b':2 }))                         #<class  'dict'>,词典类型



(3)函数



def  func(a,b,c)
       print(a,b,c)

print(type (func))    #<class   'function'>



函数也是有类型的,那就是function类型的,并且函数的对象也是这个类型:



a = func        #紧跟着上面内容的
print(type (a))    #<class   'function'>



(4)模块



import string

print(type(string))    #<class  ’module‘>



(5)类的类型



class   MyClass(object):
           pass
print(type(MyClass))    #<class  ’type‘>
my_class = MyClass()
print(type(my_class))   #<class  ’_main_.MyClass‘>



在Python中,所有对象都是一个类,所有类型也都是一个类,连自己定义的类都是一个类型



 



2、变量与类型



(1)变量定义:



  • 变量存储在内存中的地址。这就意味着在创建变量时会在内存中开辟一个空间。

比如,x=100,这句命令执行的时候,会在堆(内存)中创造一个int空间(4个字节),然后在这个空间中存储100,而x则 是指向100的内存地址



堆与栈的区别?



堆——公共内存空间,谁分配谁回收



栈——函数自带堆栈,C语言中,函数自带1M堆栈,函数中调用参数会自动压入栈中,当调用完,所有参数都会被弹出栈,这样所有的内容都会被清理完毕



相对来说,堆就不会被清理,不管你函数有没有结束,堆相当于全局变量,每分配一个变量,都会在内存中存一条记录。



  • 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
  • 变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。(弱类型

(2)变量赋值



  • 每个变量在使用前都必须赋值(Python中赋值就是声明和创建变量的过程),变量赋值以后,该变量才会被创建。(重要!!!
  • 等号(=)用来给变量赋值,等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

 



3、常见字符串处理

  • 去除空格及特殊符号:
s = ' abcd efg  '
print(s.strip())       #去除左右空格,输出:abcd  efg,注意字符串内部的空格无法去除
print(s.lstrip())      #去除左空格,右边无法去除
print(s.rstrip())      #去除右空格
print(s)
  • 复制字符串:str1 = str2
  • 修改字符串里面的值:可以参考博客——字符串修改
  • 连接字符串
str2 += str1
new_str = str2 + str1



注意,当不包含字符串str2的时候,会报错,一般要进行设置捕获异常。



  • 比较字符串:cmp(str1, str2)——Python3中,该函数被移除,而是用等于,不等于,大于小于,直接进行比较
  • 字符串长度:len(str)————空字符串长度为0

空字符串与none是不一样的,none是彻底空的,连对象都没有,而空字符串虽然是空的,但是依然创建了对象:



s = ' '
if  s  is  None:     
     print("None")  ——————这个if语句没有显示,说明' '和none是两回事



但是空字符串与false是等价的:



s = ' '
if  not  s:    
    print("None")  ——————这个if语句会输出None



  • 大小写转换
s = 'abc defg'
print(s.upper())    #将字符串转换成大写字母
print(s.upper().lower())    #将大写字符串转换成小写形式
print(s.capitalize())     #将字符串首字母大写



  • 分割与合并字符串:split, splitlines, join
s = 'abc,def,ghi'
print(s.split(','))    #将字符串以,逗号为分界线分开,和java函数是一样的,分开以后会转换成数组【,,】
s = '123\n456\n789'    #这是三行字符串
numbers = s.splitlines()    #按行切割字符串,适用于文本字符串,同样是转换成数组
print(numbers)        
print('-'.join(numbers))    #将上面转换成的数组,以-联合起来




python语句outPutPicture python语句print(type([1,2,3,4]))_赋值

s = [ 'abc','def','ghi']
print(''.join(s))        
print('-'.join(s))
print('\n'.join(s))




python语句outPutPicture python语句print(type([1,2,3,4]))_字符串_02


  • 截取字符串固定位置的字符
str = "你好啊,朋友!"
pos = str.find("朋")  #确定位置
print(pos)           #显示pos是一个数字4
str1= str[:pos]      #截取朋字前面的字符
print("显示str1:"+str1)
str1= str[pos:]      #截取朋字后面的字符
print("显示str1:"+str1)



python语句outPutPicture python语句print(type([1,2,3,4]))_字符串_03

 


  • 类型转换:int, float转换
  • 格式化字符串
  • 字符串测试
  • str.startwith(prefix) ——判断开头是否含有prefix
  • str.endwith(suffix)——判断结尾是否含有suffix
  • str.isalnum() # 是否全是字母和数字,并至少有一个字符。
  • str.isalpha() # 是否全是字母,并至少有一个字符。
  • str.isdigit() # 是否全是数字,并至少有一个字符。
  • str.isspace() # 是否全是空白字符,并至少有一个字符。
  • str.islower() # 字母是否全是小写
  • str.isupper() # 字母是否全是大写
  • str.istitle() # 首字母是否大写

从数字到字符串的变化:


  • print (str(5))
  • print (str(5.))
  • print (str(5.2354))
  • print (str(-5.234))


 


从字符串到数字的变化:


  • print (int('1243'))
  • print (int('3.455'))——这里会报错,因为它不会自动进行转换
  • print (float(‘23424.23’))


 


进制变换:


print (int('7777',8))——会输出4095,这里后面的8表示‘7777’是8进制数,然后转换成十进制


 


字符串与list数组的转化:


s = 'abcdefg'


l = list(s)————变成【‘a',’b‘,’c‘,’d‘,’e‘,’f‘,’g‘】