今天我给大家介绍python的基本数据类型,喜欢的小伙伴可以关注我哦!
![c945ede9183184ab4dd8b4e0aafbe755.png](https://img-blog.csdnimg.cn/img_convert/c945ede9183184ab4dd8b4e0aafbe755.png)
1.数值
intflaot
2.字符串String
获取长度字符串拼接三种方式字符串切片指定字符查找字符计数
3.布尔boolean
TrueFlase
4.空值None
5.list列表
元素可以是不同类型,有序集合。
6.元组tuple
元素经定义便不可更改
7.字典dictionary
通过键值来存储,查找十分迅速
8.集合sets
无序无重复序列
9.通过一个小程序来说明python的格式规范。
一:数值
在Python中数值只有两种类型
1.int2.float
定义数值十分的方便,减少了许多的的定义,比如说c中定义a=3
int a = 3;//ca = 3#python
python会自动给你识别你的数值为int型或float型,因此运行速度要比c语言慢。
a = 3.14#float
常量定义为大写,如PI=3.14,其他语言中定义为常量不可更改,python中由于失去了限定,可以更改,但请尽量不要更改。
>>> PI=3.14>>> PI3.14>>> PI = PI+2>>> PI5.140000000000001
二:字符串
**
字符串的定义
直接赋值用以定义,python中字符串可以使用单引号,双引号,三引号来括起来。
>>> s='abc'>>> s'abc'>>> s="abcd">>> s'abcd'>>> s='''abdc'''>>> s'abdc'>>> len(s)#len()获取长度
字符串的三种拼接方式:
1,+号拼接
>>> s= 'abc'+'bcd'>>> s'abcbcd'>>> s1 = s+'abc'>>> s1'abcbcdabc'
2.list有序集合拼接(使用+号拼接大量字符需要输入许多代码)
>>> list_str = ['ni','hao','bei','jin']>>> str2 = ''.join(list_str)>>> str2'nihaobeijin'>>> str3 = ' '.join(list_str)#前面代表拼接的间隔>>> str3'ni hao bei jin'
3.format拼接:使用{}将需要拼接的字符串给空出来,后面进行拼接
>>> str3 = '我喜欢{},因为我需要{}'.format('python','高效')>>> str3'我喜欢python,因为我需要高效'
字符串的切片:(起始:终止:间隔),不写默认从头尾开始。也可使用split切割:
>>> s = 'abcdefgh'>>> s[0:3]>>> s[:3]默认从0开始'abc'>>> s[3:]'defgh'>>> s[:-1]'abcdefg'>>> s[:-2]'abcdef'>>> s = 'abcdegh'>>> s[::2]//起始,终止,间隔'aceh'>>> a ='abcdef'>>> a[::-1]//可用于字符串反转'fedcba'>>> str4 = "小红,小拜,小化">>> str4.split(",")['小红,小拜,小化']
字符串查找:
>>> s = 'abcdefgh'>>> str2.find('a')0#查找不到返回-1>>> s= 'abc'>>> s.find('d')’-1
字符串下标查询:
>>> s = 'abcdefgh'>>> str2.index('b')
字符串计数:
>>> str3 = 'aaabbbccc'>>> str3.count('b')
三:布尔
只包含两个值True和False。(明确区分大小写)
>>> 3<2False>>> 3>2True>>> 3>2 and 3<2#有假为假False>>> 3>2 or 3<2#有真为真True>>> not 3>2#真则为假False
四:None值
代表空类型
>>> s= None>>> s>>> type(s)#使用type()查看参数类型
五:list列表
list中元素不受限制#并且是有序集合,可以获取
classmates = ['yh','xiaobai','xiaohong']>>> type(classmates)>>> len(classmates)3>>> classmates[0]'yh'>>> classmates[-1]'xiaohong'
list添加,直接添加在最后一位
classmates.append('haha')classmates['yh', 'xiaobai', 'xiaohong', 'haha']
插入,可指定位置插入
>>> classmates.insert(1,'hehe')>>> classmates['yh', 'hehe', 'xiaobai', 'xiaohong', 'haha']
弹出元素,默认为最后一位,也可指定位置
>>> classmates.pop()'haha'classmates.pop(3)'xiaohong'>>> classmates['yh', 'hehe', 'xiaobai']
list中元素可以是一个list
>>> s = ['python','java',[123,123],'hehe']>>> len(s)
六:元组
#元素一经定义不能被更改,引用可以被修改.
>>> t = (1,2,3)>>> t(1, 2, 3)>>> t[1]
>>> t = ('1','2','3')>>> t('1', '2', '3')
元素经定义就无法修改
>>> t = ('1','2','3')>>> t('1', '2', '3')>>> l=[1,2]>>> t[2]=l
Traceback (most recent call last): File "", line 1, in TypeError: 'tuple' object does not support item assignment>>> t[2]=3Traceback (most recent call last): File "", line 1, in TypeError: 'tuple' object does not support item assignment
但是其中的引用可以被修改,即元组中的元素是一个一个引用的时候可以被修改
>>> l =[1,2,3]>>> t = (1,2,l)>>> l=[3,2,1]>>> t(1, 2, [1, 2, 3])>>> t[2][0]=3//代表t的第三个元素l中的第一个元素。>>> t(1, 2, [3, 2, 3])
七:字典
dictionnary无序对象集合,通过key-value来映射。用"{}"来标识,查找速度极快,只需找到键值。需要占用大量内存(不仅存储值,还存储键值)。key使用不可变对象,利用key来计算位置,通常采用hash算法。
>>> names = ['yh','haha','hehe']>>> scores = [90,80,70]>>> d = {'yh':90,'xiaohong':20,'hehe':70}>>> d['hehe']70>>> d['xiaogou']=30#添加,无序。>>> d{'yh': 90, 'xiaohong': 20, 'hehe': 70, 'xiaogou': 30}
查找是否存在
>>> 'hehe' in dTrue>>> 123 in dFalse>>> d.get('123',-1)#如果没有找到,返回-1,没有先查找就去查看某个的值,会报错,先查找可以防止报错。-1>>> d.pop('xiaogou')60>>> d{'yh': 90, 'xiaohong': 20, 'hehe': 70}
八:集合sets
无序不重复元素的序列,常用于去重,交集,并集。十分快速
>>> s = set([1,1,3,3,4,4])>>> s{1, 3, 4}>>> s.add(3)>>> s{1, 3, 4}>>> s.add(2)>>> s{1, 2, 3, 4}>>> s1 =set([1,2,3])>>> s2 = set([2,3,4])>>> s1 & s2{2, 3}>>> s1 | s2{1, 2, 3, 4}
九:冰雹猜想
任意写出一个正整数N,并且按照以下的规律进行变换:
如果是个奇数,则下一步变成3N+1。
如果是个偶数,则下一步变成N/2。
最终都会变成1.
code:
def collatz(number):#def是python的函数,通常是“def 函数名(参数):”开始 if number%2 == 0:#函数内部使用4个空格,即一个tab键进行格式化,if语句后面加: return number//2#if后面的语句tab elif number%2 ==1:#elif同理,即 return 3*number+1 print('Please inter a number:')#打印在屏幕上输入一个整数try:#错误校验,如果输入的不是正整数,将会报错 num = int(input()) while num!=1:#如果内容为真,会一直做这个循环,这个数字不等于1,那么会一直对这个数字进行操作 print(collatz(num)) num = collatz(num)except ValueError:#这里是报错信息。 print('you must input a int number')