第一章 Python基础入门之数据类型

系列文章目录

第一章 Python基础入门之Hello World
第一章 Python基础入门之变量与数据类型
第一章 Python基础入门之ASCII(字符编码和二进制)
第一章 Python基础入门之单多行的注释和输出
第一章 Python基础入门之INPUT用户输入
第一章 Python基础入门之IF ELSE条件判断
第一章 Python基础入门之While循环与For循环
第一章 Python基础入门之什么是模块(库)
第一章 Python基础入门之什么是.pyc
第一章 Python基础入门之数据类型



前言

Python系列学习


一、相关内容

1、数值型

  • int(整型):在32位机器上,整数的位数是32位,取值范围是-231231-1,即-2147483648214748364;在64位系统上,整数的位数为64位,取值范围为:263至263-1,即9223372036854775808~9223372036854775807。
  • long(长整型):Python3中没有该类型了。Python长整型没有指定位宽,但是由于机器内存有限,使用长的长整数数值也不可能无限大。
  • float(浮点型):浮点型也就是带有小数点的数,其精度和机器有关。
  • complex(复数):Python还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
int(100)
float(6.5)
complex(18.2)

2、布尔型

  • 真或假(True或False)
  • 1或0
  • 和其他编程语言一样,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。
True
False

3、字符串

  • 在Python中,加了引号的字符都被认为是字符串,其声明有三种方式,分别是:单引号、双引号和三引号。Python中的字符串有两种数据类型,分别是str类型和unicode类型,str类型采用的ASCII编码,无法表示中文,unicode类型采用unicode编码,能够表示任意字符,包括中文和其他语言。
#(1)一些用于字符串的语法
sex = 'women'
print(sex.capitalize())     # 首字母大写
print(sex.count('e'))       # 统计字符串中e的个数
print(sex.center(50, '-'))  # 打印50个字符,women放在中间,其他使用-补充
print(sex.endswith('en'))   # 判断字符串是否以en结尾,返回true或false
sex1 = 'wo\tmen'
print(sex1.expandtabs(tabsize=30))  # 变量sex = 'wo\tmen',指把‘\t’转成30个空格
print(sex.find('me'))               # 返回m字母对应的索引号,即返回首字母的索引号
name = '我的名字是:{name},{year}岁'
print(name.format(name='ganbailin', year='26'))
print(name.format_map({'name': 'gan', 'year': 27}))
print(sex.isalnum())  
print(sex.isalpha())  
print(sex.isdecimal())     # 判断变量sex是否是一个小数
print(sex.isdigit())       # 判断变量sex是否是一个整数
print(sex.isidentifier())  # 判断变量sex是否是一个合法的标识符
print(sex.islower())       # 判断变量sex是否是小写字母
print(sex.isupper())       # 判断变量sex是否是大写字母
print(sex.isspace())       # 判断变量sex是否是空格
print(sex.istitle())  
print('+'.join(['1', '2', '3']))    # 对列表每个字符串的间隔之间加入一个+或其他。注意:列表中不能是数字
print(sex.ljust(50, '*'))           # 使变量sex的字符串长度是50,若不足在右边使用*补足
print(sex.rjust(50, '*'))           # 使变量sex的字符串长度是50,若不足在左边使用*补足
print('   Gauk'.lstrip())            # 去掉左边的空格
print('Gskk    '.rstrip())           # 去掉右边的空格
print('   Gdkk    '.strip())         # 去掉两边的空格
print('gshhs'.replace('h', 'H', 1)) # 替换字符串
print('hshhdsajjhhi'.rfind('h'))    # 返回在最右的h得到下标
print('1+2+3+4+5'.split('+'))       # 按照+号分割字符,并返回列表默认按照空格分割
print('hshhyuyhydyyahyyyyytdtw'.split('h'))  # 按照h分割字符,并返回列表默认按照空格分割
print('js\njd'.splitlines())                 # 遇到换行符\n时,则分割,并返回列表
print('udfu'.swapcase())                     # 返回大写
print('udjus'.title())                       # 返回标题形式,首字母大写

4、列表

  • 列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型,可对集合进行创建、查找、切片、增加、修改、删除、循环和排序操作。
names = ['zhdeffng', 'ganbsskks', 'xiddafffg', 'tdkdu', 'xiepeskskng']
print(names)                   # 输入列表中所有名称(查)
print(names[0], names[2])      # 输入列表中特定名称(查)
print(names[1:3])              # 切片 从左往右,相对于1<=rank<3。输入列表中范围名称(查)
print(names[:3])               # 切片 从左往右,相对于0<=rank<3。输入列表中范围名称(查)
print(names[-2:])              # 切片 从右往左,从左数起是从-1开始的,相当于-2<=范围<=-1 。输入列表中范围名称(查)
names.append('zhaotingting')   # 在列表最后追加一个名称(增)
names.insert(1, 'xiaopeng')    # 插入一个名称,1代表要插入所在的位置(增)
names[2] = 'xiepengcheng'      # 修改列表中的某个名称,2代表被修改名称的位置(改)
names.remove('tanyu')          # 删除掉某个名称(删)
del names[1]                   # 删除某个名称,1代表被删除的位置(删)
names.pop()                    # 当在括号里面不输入下标数字时,默认删除最后一个(删)
print(names)
print(names.index('xiaohong')) # 输出列表中某个名称的位置(查)
print(names[names.index('xiepengcheng')])  # 根据名称先查询到位置,再根据位置输出名称(查)
print(names.count('xiepengcheng'))         # 统计列表中有多少个xiepengcheng(查)
names.clear()                              # 清空列表中的所有名称(删)
names.reverse()                            # 把列表中的名称顺序反转过来(查)
names.sort()                               # 把列表中的名称排序,按照ASCII码排序(查)
print(names)
names2 = [1, 2, 3, 4, 5]                   # 新建一个列表names2
names.extend(names2)                       # 把names2中的值扩展到names中(增)
print(names, names2)                       # 即便把names2扩展到names中了,names2依然还存在的
del names2                                 # 当删掉names2后才会不存在
print(names)
names3 = names.copy()                      # 新建一个列表从names列表中复制
print(names3)
# 浅copy
import copy

person = ['name', ['a', 100]]
p1 = copy.copy(person)           # 浅copy的三种方式之一
p2 = person[:]                   # 浅copy的三种方式之一
p3 = list(person)                # 浅copy的三种方式之一
print(p1, p2, p3)
# 列表中放一个小列表
names4 = ['zhdfng', 'gafrfn', 'xfefg', ['lilfewfng', 'gafsfiyi'], 'tfeffu', 'xifewfng']
print(names4[3][0])
names5 = names4
names4[3][1] = '时间节点'
print(names4)
# 单值与列表的区别
# (1)当是单值(数字或者字符串)时:
a = 1
b = a
a = 3
print(b)               # 当单值(数字或者字符串)时,即使a的值变化了,b还是1
# (2)当是列表时:
a = [1, 2, 3]
b = a
a[1] = 333
print(b)               # 当是列表时,a变化了,b也是跟着变化,输出是[1,333,3]
# 循环输出列表
for i in names4:
    print(i)
# 间隔输出列表中的值
print(names4[0:-1:2])  # 第一种写法:0代表第一个,-1代表最后一个,2代表间隔。
print(names4[::2])     # 第二种写法:意思同上,省略了0和-1

5、元组

  • 元组和列表一样,也是一种序列,与列表不同的是,元组是不可修改的,元组用”()”标识,内部元素用逗号隔开。
  • 元组与列表的作用是一样的,主要区别是:元组不能增、删、改,只能查。所以元组也叫只读列表元组只有2个方法,一个是count ,另一个是index
tuple = (8, 9, 14, 25, 36)

6、字典

  • 字典是一种键值对的集合,是除列表以外Python之中最灵活的内置数据结构类型,列表是有序的对象集合,字典是无序的对象集合(即没有下标)。
# dict = {key:value}
info = {
    'stu01': 'xiedfffng',
    'stu02': 'lifefesdfsng',
    'stu03': 'gafewffn'
}
# (1)增删改查
print(info)
print(info['stu01'])         # 查看
info['stu04'] = 'gdfsdfn'     # 增加
print(info)
info['stu01'] = '杰克森k'     # 修改
print(info)
# del info['stu01']          #删除
print(info)
# info.popitem()             #删除
print(info)
info.pop('stu02')            # 删除(标准的,经常使用)
print(info)
print(info.get('stu03'))     # 获取(查看)

#(2)多级字典嵌套及操作(嵌套列表)
catalog = {
    'trining1': {
        'day1': ['hello world', '定义变量', '字符编码和二进制'],
        'day2': ['单多行的注释和输出', '用户输入', '流程判断'],
        'day3': ['while循环', 'for循环', '什么是模块']
    },
    'trining2': {
        'day4': ['什么是pyc', '数据类型', '练习'],
        'day5': ['结束', '好的哈哈', '哈一样']
    }
}
print(catalog.get('trining1').get('day1'))     # 查-
catalog['trining2']['day5'][0] = '多级字典'     # 修改
print(catalog)

#(3)字典常用的方法
print(info.values())    # 只输出字典的值
print(info.keys())      # 只输出字典的key
catalog.setdefault('trining3', {'day6': ['uusha', 'jjf', 'hyst']})    # 该方法是指:判断字典中是
# 否有trining3,如果有则输出的是字典的原有。如果没有,则创建一个新的trining的key和value
print(catalog)
info2 = {
    'stu01': 'linchunlian',
    'new1': 'xiaohong',
    'new2': 'zhaotingting'
}
info.update(info2)       # 该方法指:字典info2中如果相同的key而value变化就改变值。如果字典info2中有新的key
# 和value就新增到字典info中。(起“更新并且合并”作用)
print(info)
info3 = dict.fromkeys([6, 7, 8])           # 创建一个新的字典,key是7,8,9。value都是null.几个key对应
# 的value都是相同的,即使value修改后也都是相同
print(info3)
info4 = dict.fromkeys([4, 5, 6], 'test')   # 创建一个新的字典,key是4,5,6。value都是test.几个key对应
# 的value都是相同的,即使value修改后也都是相同
print(info4)
print(info.items())                        # 把字典转成列表

#(4)字典的循环
for i in info:
    print(i, info[i])        # 如果只输出i就只输出key,info[i]代表value

for k, v in info.items():    # 该循环是把字典转换为列表后再输出。注意:上面的循环比该循环更高效
    print(k, v)

#(5)三级菜单实例
data = {
    '广东': {
        '深圳':['福田区', '南山区', '宝安区'],
        '广州':['天河区', '白云区'],
        '东莞':['常平镇', '莞城']
    },
    '北京': {
        '点击':['世界上市', '为例', '奥我'],
        '等级':['市中心', '郊区']
    }
}

exit_flag = False
while not exit_flag:
    for a in data:
        print(a)
    choice1 = input('请输入省份:')
    if choice1 in data:
        while not exit_flag:
            for b in data[choice1]:
                print('\t', b)
            choice2 = input('请输入城市:')
            if choice2 in data[choice1]:
                while not exit_flag:
                    for c in data[choice1][choice2]:
                        print('\t\t', c)
                    choice3 = int(input("请输入区域:"))
                    if choice3 in data[choice1][choice2]:
                        for d in [choice1][choice2][1]:
                            print('最终为:',d)
                        choice4 = input('最后一层了,选择:返回/继续')
                        if choice4 == '返回':
                            pass
                        elif choice4 == '继续':
                            exit_flag = True
                    if choice4 == '返回':
                        break
                    elif choice4 == '继续':
                        exit_flag = True
            if choice4 == '返回':
                break
            elif choice4 == '继续':
                exit_flag = True

7、集合

  • 集合是一个无序的、不重复的数据组合,它的主要作用有两个,分别是去重和关系测试。
#(1)创建集合
set111 = {845, 7441, 958, 444, 4}
print(set111)

#(2)集合可以起到去重的作用。如下一个列表是有重复的值的,转换为集合后可以去重
list_1 = [1,2,3,4,2,3,4,5,6,7,7,8]
set_1 = set(list_1)
print(set_1,type(set_1))

#(3)构建交集(两种写法:英文和符号)
set_2 = set([2,43,44,56,4,5,6,53,55,98])
print(set_1.intersection(set_2))
print(set_1 & set_2)

#(4)构建并集(两种写法:英文和符号)
print(set_1.union(set_2))
print(set_1 | set_2)

#(5)构建差集(两种写法:英文和符号)
print(set_1.difference(set_2))   #取出set_1中有的,而set_2中没有的集合
print(set_1 - set_2)
print(set_2.difference(set_1))   #取出set_2中有的,而set_1中没有的集合
print(set_2 - set_1)

#(6)构建子集
set_3 = set([2,3])
print(set_3.issubset(set_1))     #判断set_3是否是set_1的子集
print(set_1.issubset(set_3))     #判断set_1是否是set_3的子集

#(7)构建父集
print(set_3.issuperset(set_1))   #判断set_3是否是set_1的父集
print(set_1.issuperset(set_3))   #判断set_1是否是set_3的父集

#(8)构建对称差集(与交集的结果的相反)(两种写法:英文和符号)
print(set_1.symmetric_difference(set_2))
print(set_1 ^ set_2)

#(9)判断两个集合是否“没有交集”,如果是返回TRUE,如果不是返回FALSE
set_4 = {7,8}
print(set_1.isdisjoint(set_3))
print(set_3.isdisjoint(set_4))

#(10)添加一项
set_4.add(9)
print(set_4)

#(11)添加多项
set_4.update([10,41])
print(set_4)

#(12)删除一项
set_4.remove(41)
print(set_4)

#(13)获取长度
print(len(set_4))

#删除,和remove的区别是:使用remove时没有这个值会报错,而discard不会
print(set_4.discard('ddd'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值