Python 实验四 常用数据结构(1)

2023-05-16

1.从键盘输入一个正整数列表,以一1结束,分别计算列表中奇数和偶数的和。

n = int(input("请输入一个正整数:"))
list = [] 
while n != -1:
    list.append(n)
    n = int(input("请输入一个正整数:"))
else:
    print("输入结束")
 
list1 = []
list2 = []
for i in list:
    if i % 2 != 0 :
        list1.append(i)
    else:
        list2.append(i)
        
print()
print("列表为:",list)
print("列表中的奇数的和为:",sum(list1))
print("列表中的偶数的和为:",sum(list2))

在这里插入图片描述
2.已知10个学生的成绩为68、75、32、99、78、45、88、72、83、78,请将成绩存放在列表中,请对其进行统计,输出优(100-90)、良(89-80)、中(79-60)、差(59-0)4个等级的人数。

grade = int(input("请输入学生成绩:"))
list = []
while grade > 0:
    list.append(grade)
    grade = int(input("请输入学生成绩:"))
else:
    print("成绩输入结束,现在开始统计和输出。")
    
print()
print("总成绩列表为:",list)
list1=[]
list2=[]
list3=[]
list4=[]
for i in list:
    if i>=90:
        list1.append(i)
    elif i>=80:
        list2.append(i)
    elif i>=60:
        list3.append(i)
    else:
        list4.append(i)
print("优:",len(list1),"良:",len(list2),"中:",len(list3),"差:",len(list4))

在这里插入图片描述

3.利用while循环创建一个包含10个奇数的列表,如果输入的不是奇数要给出提示信息并能继续输入,然后计算该列表的和与平均值。

list=[]
i=0
while i<10:
    n = int(input("请输入奇数:"))
    if n % 2 != 0:
        list.append(n)
        i+=1
    else:print("输入错误,请重新输入。")
        
print()
print("列表为:",list)
print("列表的和为:",sum(list))
print("列表的平均值为:",sum(list)/len(list))

在这里插入图片描述
4.请用字典编程,已知某班学生的姓名和成绩如下:
在这里插入图片描述
输出这个班的学生姓名和成绩,并求出全班同学的人数和平均分并显示。

dict = {"张三":45,"李四":78,"徐来":40,"沙思思":96,"如一":65,"司音":90,"赵敏":78,"张旭宁":99,"柏龙":60,"思琪":87}
list = dict.values()
 
print("姓名 成绩")
for i in dict:
    print(i,dict[i])
    
print()
print("班级人数:",len(list))
print("班级平均分:",sum(list)/len(list))

在这里插入图片描述
5.某家商店根据客户消费总额的不同将客户分为不同的类型。如果消费总额≥10万元,为铂金卡客户(platinum);如果消费总额≥5万元且<10万元,为金卡客户(gold);如果消费总额≥3万元且<5万元,为银卡客户(silver);如果消费总额<3万元,为普卡客户(ordinary)。现有一批顾客的消费金额(单位:万元)分别为2.3、4.5、24、17、1、7.8、39、21、0.5、1.2、4、1、0.3.将消费金额存储在列表list1中,输出一个字典,分别以platinum、gold、silver、ordinary为键,以各客户类型人数为值。

amount = float(input("请输入客户消费总额:"))
platinum = []
gold = []
silver = []
ordinary = []
while amount >= 0:
    if amount >= 10:
        platinum.append(amount)
    elif amount >= 5:
        gold.append(amount)
    elif amount >= 3:
        silver.append(amount)
    else:
        ordinary.append(amount)
    amount = float(input("请输入客户消费总额:"))
else:
    print("输入结束,统计数据。")
list1=platinum+gold+silver+ordinary
    
print()
print("list1:",list1)
dict = {"platinum":len(platinum),"gold":len(gold),"silver":len(silver),"ordinary":len(ordinary)}
print(dict)

在这里插入图片描述
【实验总结】
1、列表list
列表是Python中最基本的数据结构,是最常用的Python数据类型。列表将由若干数据作为元素的序列放置在一对方括号中,元素之间以逗号分隔。Python列表元素可以由任意类型的数据构成。同一列表中各元素的类型可以各不相同。列表中的元素允许重复。此外,Python列表是可以修改的,修改方式包括向列表添加元素、从列表删除元素以及对列表的某个元素进行修改。
(1)创建列表
列表的创建,即用一对方括号将以逗号分隔的若干数据(表达式的值)括起来。
(2)列表访问
列表访问,也就是对列表的索引操作的过程,并返回索引位置上的元素。列表中的每个元素被关联一个序号,即元素的位置,也称为索引。索引值是从0开始,第二个则是 1,以此类推,从左向右逐渐变大;列表也可以从后往前,索引值从-1开始,从右向左逐渐变小。该访问方式适用于所有序列类型的对象:列表、元组、字符串。
① 一维列表的访问
若一个列表有n个元素,则访问元素的合法索引范围是-n~n-1,当序号x为负时,表示从右边计数,其访问的元素实际为序号为n+x的元素。这个规律对所有序列类型均有效。
② 二维列表的访问
对二维列表中的元素进行访问,需要使用两对方括号来表示,第一个表示选择子列表,第二个在选中的子列表中再选择其元素。
(3)del命令
使用del命令可以从列表中删除元素,也可以删除整个列表。删除列表元素除了前面介绍的del命令以外,还有remove()、pop()、clear()方法。
(4)列表运算
①列表相加
通过列表相加的方法生成新列表。
②列表相乘
用数字n乘以一个列表,会生成一个新列表。在新列表中原来列表的元素将被重复n次。
(5)列表方法
①index(value[,start=0[,stop]])
index()方法用于从列表中找出与value值匹配的第一个元素索引位置。如果没有指定参数start的值,则从索引为0的位置开始查找,否则从索引为strat的位置开始查找。如果没有指定结束索引位置stop的值,可以查找到列表最后元素,否则在位于[start, stop)内的索引区间查找。如果找不到匹配项,就会引发异常。
实际上可以先使用in运算符测试某个元素是否在该列表中,避免用index()查找索引位置时由于找不到指定元素而导致的错误。
②count()
count()方法,用于统计某个元素在列表中出现的次数。
添加列表元素除了前面介绍的“+”、“+=”、“”、“=”运算符以外,还有append()、extend()、insert()方法。
③append()
append()方法,追加单个元素到列表的尾部,只接受一个元素,元素可以是任何数据类型,被追加的元素在列表中保持着原结构类型。
④extend()
extend()方法,在列表的末尾一次性追加另一个列表中的多个值,可以用新列表扩展原有的列表。
⑤insert()
insert()方法,将一个元素插入到列表中的指定位置。列表的insert方法有两个参数,第一个参数是索引点,即插入的位置,第二个参数是插入的元素。
⑥remove()
remove()方法,用于移除列表中与某值匹配的第一个元素。如果找不到匹配项,就会引发异常。
⑦pop()
pop()方法用于移除列表中的一个元素(默认为最后一个元素),并且返回该元素的值。pop()方法可以指定索引位置,当不在索引范围内或者从空列表中使用此方法均会触发异常。
⑧clear()
clear()方法用于删除列表中所有元素,但保留列表对象。请注意与del命令的区别,del命令删除整个列表时,列表对象不再保留。
⑨列表排序有reverse()、sort()方法
reverse()
reverse()方法,用于将列表中的元素位置反向存放。列表中可以有不同类型的元素,reverse()方法只是将位置反转。
sort()
sort()方法,用于将列表中的元素进行排序。默认按升序排列。使用reverse参数来指明列表是否降序排列,参数是简单的布尔值True或False,若其值等于True表示降序排序,默认为False。如果列表中包含的是字符串,按字母串排序规则排序。可以使用key参数。
(6)列表函数
①len()函数
len()函数,用于返回列表中所包含元素的个数。
②max()函数
max()函数,用于返回列表中元素的最大值。
列表中只能包含可相互比较的元素,如列表元素中既有数字又有字符串则会出错。
③min()函数
min()函数,用于返回列表中所包含元素的最小值。同样,如果列表中包含的是字符串,也按字符串的比较大小方法排序返回最小值,列表中只能包含可相互比较的元素。
③ reversed()函数
reversed()函数,将列表中的元素位置反向并返回可迭代的reversed对象。可以和list()函数联合起来使用得到列表。
④ sorted()函数
sorted()函数,对列表进行排序并返回新列表。
(7)列表遍历
可以通过for语句或者while语句循环遍历列表中所有元素。
2、元组tuple
元组由不同的元素组成,每个元素的数据类型可以各不相同,如字符串、数字和元组等。元组和列表十分相似,元组是用一对圆括号括起、用逗号分隔的多个元素的组合。元组也是序列的一种,可以利用序列操作对元组进行处理。
元组的操作和列表有很多的相似之处,但元组和列表之间也存在重要的不同,元组是不可更改的,是不可变对象。元组创建之后就不能修改、添加、删除成员。元组的上述特点使得其在处理数据时效率较高,而且可以防止出现误修改操作。
(1)元组创建
元组的创建,即用一对圆括号将以逗号分隔的若干元素(数据、表达式的值)括起来。
(2)元组访问
和列表一样,可以通过索引、切片来访问元组的成员。
(3)元组运算
①元组相加
通过元组相加的方法生成新元组。
②元组相乘
用数字n乘以一个元组,会生成一个新元组。在新元组中原来的元组元素将依次被重复n次。
③元组遍历
与列表类似,也可以通过for语句或者while语句实现循环遍历元组中的所有元素。
(4)列表与元组之间的转换
①列表转换成元组
Python中的tuple()函数可以接受一个列表,并返回一个包含同样元素的元组。从结果上看,tuple()函数冻结了列表。
②元组转换成列表
Python中的list()函数接受一个元组,并返回一个包含同样元素的列表。从结果上看, list()函数融化了元组。
3、字典
字典是Python中唯一内建的映射类型,用一对花括号“{”和“}”作为边界,元素之间以逗号分隔,每个元素是一对键(key)和值(value),键和值之间用英文冒号分隔。字典可通过数据key查找关联数据value。Python中字典的元素没有特殊的顺序,因此不能像序列那样通过位置索引来查找成员数据。但是每一个值都有一个对应的键。字典的用法是通过键key来访问相应的值value,字典的键是不重复的。
(1)创建字典
在字典中,键可以是任何不可修改类型的数据,如数值、字符串和元组等,列表是可变的,不能作为字典的键;而键对应的值可以是任何类型的数据。字典是无序集合,字典的显示次序由字典在内部的存储结构决定。
(2)字典操作
①字典中“键-值”对的数量
len()可以返回字典中项(键-值对)的数量。
②查找与特定键相关联的值
查找与特定键相关联的值,其返回值就是字典中与给定的键相关联的值。
③修改字典中的数据
在字典中,某个键相关联的值可以通过赋值语句来修改,如果指定的键不存在,则相当于向字典中添加新的键值对。
④删除字典条目
del命令可以用来删除字典条目或者整个字典。
⑤检查字典中是否含有某键的项
in命令可以查找某键值是否在字典中。如果存在返回“True”,否则返回“False”。
(3)字典方法
①keys()、values()
keys()方法将字典中的键以可迭代的dict_keys对象返回。values()方法将字典中的值以可迭代的dict_values对象形式返回。
②items()
items()方法将字典中的所有键和值以可迭代的dict_items对象形式返回,每对键值对组成元组作为一个元素。
③setdefault()
使用dict.setdefault(key, default=None)时,如果字典中包含参数key对应的键,则返回该键对应的值;否则以参数key的值为键,以参数default的值为该键对应的值,在字典中插入键-值对元素,并返回该元素的值部分。
④update()
update()方法将另一个字典中的所有键值对一次性地添加到当前字典中,如果两个字典中存在有相同的键,则以另一个字典中的值更新当前字典。
⑤clear()
clear()方法将字典中的所有条目删除,变成空字典。
⑥pop()
pop()方法能够弹出并删除字典中的键值对。
⑦popitem()
popitem()方法能够弹出字典的一个元素,如果字典为空则触发异常。
⑧get()
get()方法返回指定键所对应的值,如果键不存在则返回默认值。默认值为None,也可以自己指定。
(4)列表、元组与字典之间的转换
①列表与字典之间的转化
Python中的list()函数可以将字典转换列表,但列表不能转换为字典。
②元组与字典之间的转化
Python中的tuple()函数可以将字典转换元组,但元组不能转换为字典。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 实验四 常用数据结构(1) 的相关文章

  • DDR基础

    欢迎关注我的博客网站nr linux com xff0c 图片清晰度和 xff0c 排版会更好些 xff0c 文章优先更新至博客站 DDR全称Double Data Rate Synchronous Dynamic Random Acces
  • OpenCV实验系列之Mask操作

    OpenCV实验系列之Mask操作 注意 xff1a 以下内容根据opencv官网提供的教程结合个人理解所得 xff0c 仅是个人学习笔记 xff0c 可能存在错误或偏差 xff0c 欢迎指正 OpenCV实验系列之Mask操作 Mask矩
  • UART通信可否只接VCC、RXD、TXD而不接GND?

    使用串口登录树莓派时出现的问题 xff1a 将TF卡插入到树莓派 xff0c 然后开启电源 xff0c 采用串口查看登录界面时出现误码 xff0c 最后排查得出是没有共地 那么假设有两款5V单片机 xff0c 独立供电 按理 xff0c 连
  • Linux 网络编程项目 —— FTP 网盘

    文章目录 项目简介知识点描述项目功能指令远程功能指令本地功能指令 使用的关键函数access 函数popen 函数chdir 函数strtok 函数strncmp 函数linux system函数是否执行成功判断方法 基本流程服务端客户端
  • VMware虚拟机

    文章目录 VMware虚拟机联网三种网络连接方式桥接模式联网原理NAT模式联网原理NAT模式配置手动配置网络关于apt命令关于ifconfig命令简介命令格式命令参数使用实例显示网络设备信息 激活状态的 开启 禁用网络 虚拟机内核与逻辑处理
  • 智能无障碍轮椅——ESP8266总体介绍及ESP-01S入门调试

    文章目录 一 ESP8266 介绍二 ESP8266的多种型号1 DT 062 ESP 01和ESP 01S 左边ESP 01S xff0c 右边ESP 01 3 ESP 12F 三 两种开发方式1 AT指令开发方式2 SDK开发方式 四
  • ROS操作系统快速入门

    文章目录 一 简介模块化 分布式的系统设计 二 安装虚拟机与ROS系统安装虚拟机的缺点安装ubuntu20 04 三 ROS系统安装切换镜像源视频教程 四 ROS应用商城APT源简介与指令介绍案例ros应用商城介绍 五 GIthub建立如下
  • Proteus 仿真8086+8255,运行时错误的解决

    要实现的功能 xff1a 通过开关控制流水灯的显示方式 电路原理图 xff1a 汇编源程序 xff1a CODE SEGMENT ASSUME CS CODE START MOV AL 90H OUT 36H AL AGAIN IN AL
  • 7年程序员项目经历归纳总结

    工作五年 xff0c 敲代码7年 xff0c 科研院所 国企 私企都有过经历 xff0c 发现项目的开发过程总是那么的相似 xff0c 过程举例如下 xff08 事实上画个流程图可能更好 xff0c 但是懒得画了 xff09 xff1a 1
  • Ubuntu20.04+ros(noetic)+RealsenseT265+ORB_SLAM3(一)

    noetic安装的很顺利 xff0c 照着官方文档来就行 xff1b Kalibr的编译 xff1a 一开始参考了 Ubuntu16 04 43 RealsenseT265跑通VINS Fusion IATBOMSW的博客 CSDN博客 x
  • 如何开启英伟达TX2的所有USB3.0口

    TX2新烧完系统之后 xff0c 默认只有一个USB3 0口使能了 xff0c 实际上TX2最多可以使能3个USB3 0口 xff0c 在TX2的design guide中 xff0c 可以找到相应的配置说明 xff0c 见下图 TX2默认
  • Ubuntu20.04+ros(noetic)+RealsenseT265+ORB_SLAM3(二)

    终于编译kalibr成功了 xff0c 可以标定t265了 标定分为三个步骤 xff0c 分别是IMU xff0c 双目和联合标定 xff0c 标定过程仍然参考了Ubuntu16 04 43 RealsenseT265跑通VINS Fusi
  • ADRC控制系统离散形式的稳定性证明

    1 引言 这个问题是最近课题组一个师兄的SCI控制论文的一部分 xff0c 应师兄之邀 xff0c 博主贡献了控制系统稳定性的数学证明 博主目前的研究方向跟控制领域毫无关联 xff0c 只负责其中的系统收敛性证明 师兄的控制系统是一个较为一
  • 固定翼无人机的自主降落-Simulink纵向控制仿真

    本项目来源于一项课程设计 xff0c 用于简单固定翼模型的降落 需要模型的请点击下载链接 xff0c 通过积分获取 https download csdn net download nudt zrs 12454986 练习过固定翼飞行的 x
  • 找工作笔试中的常见考点

    1 Java程序初始化执行顺序 xff1a 父类静态变量 父类静态代码块 子类静态变量 子类静态代码块 父类非静态变量 父类非静态代码块 父类构造函数 子类非静态变量 子类非静态代码块 子类构造函数 2 程序运行结果是多少 xff1f pu
  • eclipse修改后无法正常保存文件解决办法

    ctrl 43 s保存修改的代码时报错 window gt Preferences gt General gt Content Types gt Text gt 选中出现保存问题的文件类型 xff08 如JSP xff09 在底部出现 39
  • Ubuntu18.04+ros-melodic (包括Ubuntu16.04+ros-kinetic)乐视奥比中光相机在nano、tx2、PC等设备上的安装与使用,并解决无法显示rgb信息的问题

    2020 12 25修改 xff1a 本文底部所说的无法显示rgb的情况 xff0c 如果你买的是乐视就按照这个来绝对ok 如果你买的是奥比中光的原装正版 xff0c 直接启动launch文件就行了 xff0c 无须再修改端口号 本来用Ki
  • 数据库单表查询教师班级学生信息表

    单表查询实例 以下为单表查询小实验 xff0c 由于没有教师表和学生表数据库文件 xff0c 因此没有运行截图 xff0c 若有语法错误还望大佬们指正 1 查询学生信息表 info student 中的班级信息 Select 班级 span
  • 在用于 GROUP BY 子句分组依据列表的表达式中,不能使用聚合或子查询。

    在用于 GROUP BY 子句分组依据列表的表达式中 不能使用聚合或子查询 示例题目 原因分析 解决方案 示例题目 查询所有学生的平均成绩 显示字段为学号 姓名 平均成绩 题目 查询所有学生的平均成绩 显示字段为学号 姓名 平均成绩 报错情
  • 在查询中进行统计,分组统计,分开统计

    在查询中进行统计 按角色分组算出每个角色按有办公室和没办公室的统计人数 列出角色 xff0c 数量 xff0c 有无办公室 注意一个角色如果部分有办公室 xff0c 部分没有需分开统计 xff09 span class token cons

随机推荐

  • vscode在哪里配置git

    一 安装Git管理工具 xff0c 可上官网安装 xff0c 安装路径https git scm com xff0c 安装路径默认C Program Files Git xff0c 可自行修改 xff0c 这里我是安装在D Program
  • macOS下的串口调试助手——CoolTerm的使用

    很多希望在 macOS 下做嵌入式开发的朋友都苦于没有合适的串口调试软件 xff0c 今天我来介绍分享一下 CoolTerm 这款跨平台串口调试助手 1 下载安装 首先到 CoolTerm 的官方网站 http freeware the m
  • vscode怎么关掉/禁用源代码管理

    问题描述 运行项目时源代码管理自动运行 有时还报错实在不便 而运行本地项目时往往不用进行版本控制 xff0c 也就不需要vscode的源代码管理 解决方法 在设置中搜索GIT Enabled xff0c 将其关闭即可 如果求稳可以一并把gi
  • ‘com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor‘ 已经过时了导致出现返回total总为0的问题

    在配置类中去掉原有的依赖 他已经过时了 去掉之后 添加这个功能更多更新的Bean对象 64 Configuration span class token keyword public span span class token keywor
  • UnsatisfiedDependencyException: Error creating bean with name ‘subjectServiceImpl‘: Unsatisfied depe

    背景 看xml所在的路径不舒服 任性改资源路径 以为idea会帮我更新引用就以身试险了哈哈哈 报错信息是bean出现了创建错误 查了网上大部分的博客 一一排除后还是报错 网上大部分建议总结如下 1 先去排查service实现层有没有添加注解
  • Web server failed to start. Port 9020 was already in use./window环境

    Web server failed to start Port 9020 was already in use Web服务器无法启动 端口9020已在使用中 解决思路 xff1a 端口被占用了 xff0c 需要我们去杀死相应的进程 xff0
  • 怎么删除存在表关联的原有数据库表空间?

    怎么删除原有数据库表空间 xff1f 1 xff1a 查询所有的表空间 select tablespace name from sys dba tablespaces 2 xff1a 删除 普通删除 DROP TABLESPACE MESA
  • oracle数据库还原/finalshell/删除表空间/用户名冲突

    数据库10 0 1 131还原 1 首先进行数据库finalshell的配置 账号 xff1a mesadmin 密码 xff1a 2 加载oracle配置文件 sudo su su oracle source etc profile 3
  • C++中的数据类型及其所占字节

    1 整型 包括 xff1a short xff08 短整型 xff09 xff0c 占2个字节 xff1b int xff08 整型 xff09 xff0c 占4个字节 xff1b long xff08 长整型 xff09 xff0c 占4
  • C语言中的关键字

    C语言共有32个关键字 关键字不能作为常量名 变量名或其他标识符名称 根据关键字的作用 xff0c 可将关键字分为 xff1a 数据类型关键字 控制语句关键字 存储类型关键字和其它关键字这四类 数据类型关键字 xff08 12个 xff09
  • C语言字符串和字符串结束标志

    1 在C语言中 xff0c 是将字符串作为字符数组来处理的 2 C语言规定了一个 字符串结束标志 xff0c 以字符 0 作为结束标志 如果字符数组中存有若干字符 xff0c 前面九个字符都不是空字符 xff08 0 xff09 xff0c
  • C语言字符数组的输入和输出

    字符数组的输入输出有两种方法 xff1a xff08 1 xff09 逐个字符输入输出 用格式符 c 输入或输出一个字符 例如 span class token keyword int span span class token funct
  • android手机开启IPv6(电信)

    安卓手机开启IPv6 xff08 电信 xff09 系统设置找到移动网络 接入点 接入点选择CTNET 接入设置点进去可以找到APN协议 xff0c 选择IPv4 IPv6即可 实测手机这样设置后开热点笔记本 xff0c 能稳定获得ipv6
  • C语言 怎样定义函数

    1 定义函数 C语言要求 xff0c 在程序中用到的所有函数必须要 先定义 xff0c 后使用 定义函数应包括以下几个内容 xff1a xff08 1 xff09 指定函数的名字 xff0c 以便以后按名调用 xff08 2 xff09 指
  • C语言 函数的返回值

    通过函数调用使主调函数能得到一个确定的值 xff0c 这就是函数值 xff08 函数的返回值 xff09 1 函数的返回值是通过函数中的return语句获得的 return语句将被调用函数中的一个确定值带回到主调函数中去 如果需要从被调函数
  • C语言 函数的嵌套调用

    C语言的函数定义是互相平行 独立的 xff0c 也就是说 xff0c 在定义函数时 xff0c 一个函数内不能再定义另一个函数 xff0c 即不能嵌套定义 xff0c 但可以嵌套调用函数 xff0c 即 xff0c 在调用一个函数的过程中
  • C语言 Hanoi(汉诺)塔问题,用递归解决

    问题 古代有一个梵塔 xff0c 塔内有3个座A xff0c B xff0c C 开始时A座上有64个盘子 xff0c 盘子大小不等 xff0c 大的在下 xff0c 小的在上 有一个老和尚想把64个盘子从A作移到C座 xff0c 但规定每
  • C语言 数组元素的指针

    1 一个变量有地址 xff0c 一个数组包含若干个元素 xff0c 每个数组元素都在内存中占用存储单元 xff0c 它们都有相应的地址 2 指针变量既然可以指向变量 xff0c 当然也可以指向数组元素 xff08 把某一元素的地址放入一个指
  • Python 实验三 控制语句

    1 从键盘接收整数的一百分制成绩 xff08 0到100 xff0c 要求输出其对应的成绩等级A E 其中 xff0c 90分 xff08 包含 xff09 以上为A xff0c 80 89 xff08 均包含 xff09 分为B xff0
  • Python 实验四 常用数据结构(1)

    1 从键盘输入一个正整数列表 xff0c 以一1结束 xff0c 分别计算列表中奇数和偶数的和 n span class token operator 61 span span class token builtin int span sp