Python入门基础(2)——基本类型与字符串处理

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))    #将上面转换成的数组,以-联合起来
运行结果如下:

s = [ 'abc','def','ghi']
print(''.join(s))        
print('-'.join(s))
print('\n'.join(s))
运行结果:
  • 类型转换: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‘】



猜你喜欢

转载自blog.csdn.net/yuangan1529/article/details/80671901