切片
prLILUIy SLr4
# start 和end 都不写,但是冒号需要写my_str5 = my_str[:] # helloprint(my_str5)
print(my_str[-4:-1])# ellprint(my_str[3:1],'1') # 没有数据,#步长可以是负数print(my_str[3:1:-1],'2')# LL
print(my_str[::-1]) # 字符串的逆置,olleh
print(my_str[::2])#02 4 hlo my_str[e:5:2]
my_str='hello world itcast and itcascpp
循环嵌套
n=int(input('请输入正方形的边长:'))
j=0
while j<n:
i=0
while i<n:
print('*',end='')
i+=1
print()
j+=1
#for循环打印正方形
for j in range(n):
for i in range(n):
print('*',end='')
print()
打印三角形
n=5
for i in range(n):
for j in range(i+1):
print('*',end='')
print()
字符串查找相关工作
my_str = 'hello world itcast and itcastcpp'
index=my_str.find('hello')
print(index)
print(my_str.find('hello,3'))
print(my_str.find('itcast'))
print(my_str.find('itcast,15'))
print(my_str.find('itcast'))
print(my_str.index('itcast'))
print(my_str.rindex('itcast'))
print(my_str.count('aaa'))
print(my_str.count('hello'))
字符串的替换
my_str = 'hello world itcast and itcastcpp'
index=my_str.find('hello')
print(index)
print(my_str.find('hello,3'))
print(my_str.find('itcast'))
print(my_str.find('itcast,15'))
print(my_str.find('itcast'))
print(my_str.index('itcast'))
print(my_str.rindex('itcast'))
print(my_str.count('aaa'))
print(my_str.count('hello'))
字符串的切割
my_str = 'hello world itcast and itcastcpp'
result=my_str.split()
print(result)
print(my_str.split('itcast'))
print(my_str.split('itcast',1))
print(my_str.rsplit('itcast', 1))
字符串的连接
my_str='_'.join('hello')
print(my_str)
my_list=['hrllo','cpp','python']
print('_'.join(my_list))
列表
my_str='_'.join('hello')
print(my_str)
my_list=['hrllo','cpp','python']
print('_'.join(my_list))
列表遍历
my_list=['郭德纲','于谦','小玥玥']
for i in my_list:
print(i)
列表添加数据
my_list=['郭德纲','于谦','小玥玥']
print(my_list)
my_list.append('aaaa')
print(my_list)
my_list.insert(0,'issac')
print(my_list)
my_list.extend('hello')
print(my_list)
my_list.extend([1,'python',4])
print(my_
列表查询操作
my_list=[1,3.14,'issac',False]
num=my_list.index(3.14)
print(num)
num2=my_list.count(1)
print(num2)
num3 = 3.14 in my_list
print(num3)
num3 = 3.14 not in my_list
print(num3)
列表删除操作
my_list=[1,2,3,4,5,7]
my_list.remove(4)
print(my_list)
num=my_list.pop()
print(num)
print(my_list)
num=my_list.pop(2)
print(num)
print(my_list)
del my_list[1]
print(my_list)
列表中的排序
my_list=[1,55,10,5,6,7]
my_list.sort(reverse=True)
print(my_list)
my_list1=sorted(my_list)
print(my_list)
print(my_list1)
print('='*30)
my_list3=['a','b','c']
my_list4=my_list3[::-1]
print(my_list3)
print(my_list4)
列表嵌套
school_names = [['北京大学','清华大学'],
['南开大学','天津大学','天津师范大学'],
['山东大学','中国海洋大学']]
print(school_names[1])
print(school_names[1][1])
print(school_names[1][1][1])
print(school_names[2][0])
for schools in school_names:
for name in schools:
print(name)
元组
my_list = [18,3.24,True,'issac']
my_tuple = (18,3.24,True,'issac')
print(my_tuple,type(my_tuple))
print(my_tuple[1])
my_tuple1=()
print(my_tuple1,type(my_tuple1))
my_tuple2=(3,)
print(my_tuple2,type(my_tuple2))
字典的创建
my_dict = {}
my_dict1=dict()
print(my_dict,type(my_dict))
print(my_dict1,type(my_dict1))
my_dict2={'name':'issac'}
print(my_dict2)
print(my_dict2['name'][1])
print(my_dict2.get('name'))
print(my_dict2.get('jifhf','男'))
print(len(my_dict2))
字典中的数据的添加和修改
my_dict={'name':'issac'}
my_dict['age']=18
print(my_dict)
my_dict['name']=19
print(my_dict)
字典中删除数据
del my_dict[1]
print(my_dict)
resule=my_dict.pop('age')
print(my_dict)
print(resule)
my_dict.clear()
print(my_dict)
del my_dict
字典中遍历数据
# result = my_dict.keys()
# print(result,type(result))
# for key in result:
# print(key)
# result=my_dict.values()
# print(result,type(result))
# for value in my_dict.values():
# print(value)
result=my_dict.items()
print(result, type(result))
for item in my_dict.items():
print(item[0],item[1])
enumerate
my_list=['a','b','c','d','e']
# for i in my_list:
# print(i)
for i in my_list:
print(my_list.index(i),i)
for j in enumerate(my_list):
print(j)
函数的定义和调用
print('函数定义前')
def func():
print('好好学习,天天向上')
print('授课认真听讲,不要走神')
print('函数定义后')
func()
函数文档说明
def func():
'''
:return:
'''
print('hello world')
func()
help(func)
带参数的函数
def add(a,b):
c=a+b
print(f'求和的结果为{c}')
add(1,2)
add(100,200)
局部变量
def func():
num=100
print(num)
func()
全局变量
g_num=100
def func1():
print(g_num)
func1()
函数的返回值
def add(a,b):
c = a + b
return c
print(f'求和结果是{c}')
result = add(100,200)
print(f'函数外部获得了求和的结果{result}')
return返回多个数据值
def func(a,b):
c=a+b
d=a-b
return c,d
result=func(10,20)
print(f'a+b的结果是{result[0]},a-b的结果是{result[
字典中遍历数据
# result = my_dict.keys()
# print(result,type(result))
# for key in result:
# print(key)
# result=my_dict.values()
# print(result,type(result))
# for value in my_dict.values():
# print(value)
result=my_dict.items()
print(result, type(result))
for item in my_dict.items():
print(item[0],item[1])
enumerate
my_list=['a','b','c','d','e']
# for i in my_list:
# print(i)
for i in my_list:
print(my_list.index(i),i)
for j in enumerate(my_list):
print(j)
函数的定义和调用
print('函数定义前')
def func():
print('好好学习,天天向上')
print('授课认真听讲,不要走神')
print('函数定义后')
func()
函数文档说明
def func():
'''
:return:
'''
print('hello world')
func()
help(func)
带参数的函数
def add(a,b):
c=a+b
print(f'求和的结果为{c}')
add(1,2)
add(100,200)
局部变量
def func():
num=100
print(num)
func()
全局变量
g_num=100
def func1():
print(g_num)
func1()
函数的返回值
def add(a,b):
c = a + b
return c
print(f'求和结果是{c}')
result = add(100,200)
print(f'函数外部获得了求和的结果{result}')
return返回多个数据值
def func(a,b):
c=a+b
d=a-b
return c,d
result=func(10,20)
print(f'a+b的结果是{result[0]},a-b的结果是{result[1]}')
函数的嵌套调用
def func1():
print('func1 start...')
print('函数的其他代码')
print('func1 end...')
def func2():
print('func2 start...')
func1()
print('func2 end...')
func2()
函数传参两种
def func(a,b,c):
print(f"a:{a}")
print(f"b:{b}")
print(f"c:{c}")
func(1,2,3)
缺省参数
def func(a,b,c=10):
print(f"a:{a}")
print(f"b:{b}")
print(f"c:{c}")
func(1,2)
func(1,2,3)
None
"""
演示特殊字面量:None
"""
# 无return语句的函数返回值
def say_hi():
print("你好呀")
result = say_hi()
print(f"无返回值函数,返回的内容是:{result}")
print(f"无返回值函数,返回的内容类型是:{type(result)}")
# 主动返回None的函数
def say_hi2():
print("你好呀")
return None
result = say_hi2()
print(f"无返回值函数,返回的内容是:{result}")
print(f"无返回值函数,返回的内容类型是:{type(result)}")
# None用于if判断
def check_age(age):
if age > 18:
return "SUCCESS"
else:
return None
result = check_age(16)
if not result:
# 进入if表示result是None值 也就是False
print("未成年,不可以进入")
# None用于声明无初始内容的变量
name = None
文件的读取
"""
演示对文件的读取
"""
# 打开文件
import time
f = open("D:/测试.txt", "r", encoding="UTF-8")
print(type(f))
# 读取文件 - read()
# print(f"读取10个字节的结果:{f.read(10)}")
# print(f"read方法读取全部内容的结果是:{f.read()}")
print("-----------------------------------------------")
# 读取文件 - readLines()
# lines = f.readlines() # 读取文件的全部行,封装到列表中
# print(f"lines对象的类型:{type(lines)}")
# print(f"lines对象的内容是:{lines}")
# 读取文件 - readline()
# line1 = f.readline()
# line2 = f.readline()
# line3 = f.readline()
# print(f"第一行数据是:{line1}")
# print(f"第二行数据是:{line2}")
# print(f"第三行数据是:{line3}")
# for循环读取文件行
# for line in f:
# print(f"每一行数据是:{line}")
# # 文件的关闭
# f.close()
# time.sleep(500000)
# with open 语法操作文件
with open("D:/测试.txt", "r", encoding="UTF-8") as f:
for line in f:
print(f"每一行数据是:{line}")
time.sleep(500000)
文件读取的课后练习
f = open("D:/word.txt", "r", encoding="UTF-8")
# 方式1:读取全部内容,通过字符串count方法统计itheima单词数量
# content = f.read()
# count = content.count("itheima")
# print(f"itheima在文件中出现了:{count}次")
# 方式2:读取内容,一行一行读取
count = 0 # 使用count变量来累计itheima出现的次数
for line in f:
line = line.strip() # 去除开头和结尾的空格以及换行符
words = line.split(" ")
for word in words:
if word == "itheima":
count += 1 # 如果单词是itheima,进行数量的累加加1
# 判断单词出现次数并累计
print(f"itheima出现的次数是:{count}")
# 关闭文件
f.close()
文件的写入
import time
f = open("D:/test.txt", "w", encoding="UTF-8")
f.write("黑马程序员")
f.close()
文件的追加写入
f = open("D:/test.txt", "a", encoding="UTF-8")
f.write("\n月薪过万")
f.close()
文件操作的综合案例
打开文件得到文件对象,准备读取
fr = open("D:/bill.txt", "r", encoding="UTF-8")
# 打开文件得到文件对象,准备写入
fw = open("D:/bill.txt.bak", "w", encoding="UTF-8")
# for循环读取文件
for line in fr:
line = line.strip()
# 判断内容,将满足的内容写出
if line.split(",")[4] == "测试":
continue # continue进入下一次循环,这一次后面的内容就跳过了
# 将内容写出去
fw.write(line)
# 由于前面对内容进行了strip()的操作,所以要手动的写出换行符
fw.write("\n")
# close2个文件对象
fr.close()
fw.close() # 写出文件调用close()会自动flush()
文献综述
医学图像三维可视化技术的研究与实现
摘要:医学图象三维可视化是多学科交叉领域,涉及数字图象处理、计算机图形学以及医学领域知识,在诊断医学、手术规划等方面有重要应用。本文研究了三维医学体数据的分割和体绘制算法,并开发了一个医学三维可视化平台。对组织或器官的分割与提取是保证重建模型准确表达的前提,文中提出了一种基于模糊区域增长、边缘检测及数学形态学的混合分割方法,用于三维脑图像分割,取得较好效果。在三维医学图像体绘制研究中,对传统光线投射算法改进,提出基于跨过空体元的快速算法和基于混合数据场的绘制,提高了绘制速度。
基于VTK的三维医学图像可视化处理系统
摘要:本系统基于VTK结合VC环境,实现对医学影像图的显示和三维体数据的绘制。采用MarchingCube面绘制算法和光线跟踪体绘制算法等,通过底层导出技术实现关键算法独立导出,结合VC底层处理能力和OpenGL开发接口,提高数据绘制清晰程度和速度。针对体绘制算法较慢的缺点,独立导出Shear - Warp算法结合RLE压缩编码,实现对体数据无损快速绘制,避免VTK黑箱式流程处理,可在体数据最高分辨率上完成绘制。
基于医学断层图像的三维可视化实现技术研究
摘要:本文旨在普通计算机上实现医学图像的三维可视化、兴趣区精确显示及快速绘制。给出注射造影剂扫描成像新定时方法,提高断层图像质量,实现DICOM格式数据读取与转换。提出基于小波变换的图像增强和多尺度边缘检测新方法,结合种子填充等算法提取单层切片感兴趣区域。针对光线投影算法不足,提出重采样加速算法,提高绘制效率。在图像体分割中,设计新外部能量函数构造方法,使轮廓曲线准确收敛于物体边缘。还提出基于小波变换的插值放大新算法,提高放大后图像清晰度和分辨率。
• 《医学影像三维立体可视化系统研究》:该论文研究了医学图像数据格式,实现基于DICOM标准的读取,研究图像预处理的各向异性滤波及基于水平集的图像分割方法,探讨多种三维重建及立体显示方法,在VC++6.0环境下利用VTK与ITK开发系统,实现多种功能。
• 《基于VTK的三维医学图像可视化处理系统》:本系统基于VTK结合VC环境,实现对医学影像图的显示和三维体数据的绘制。采用MarchingCube面绘制算法和光线跟踪体绘制算法等,通过底层导出技术提高数据绘制清晰程度和速度,独立导出Shear - Warp算法结合RLE压缩编码实现体数据无损快速绘制。
• 《医学影像三维可视化系统设计及关键技术研究》:针对医学影像可视化关键技术深入研究,提出基于内存分配优化的移动立方体算法以减少内存消耗,改进三线性插值算法提高光线投射法体绘制速度,分析三维纹理映射体绘制算法,还提出集成模型满足临床应用中影像数据各环节功能需求。
• 《医学图像的三维可视化方法研究》:对医学MR图像三维可视化关键技术进行研究,包括三维医学体数据分割和体绘制算法,开发医学三维可视化平台。提出基于模糊区域增长、边缘检测及数学形态学的混合分割方法用于三维脑图像分割,还对传统光线投射算法改进,提出快速算法和基于混合数据场的绘制。
关于脑出血医学CT的学士论文文献综述:
脑出血医学CT相关研究综述
脑出血概述:脑出血是一种严重的脑血管病,具有较高的致残率及病死率,占所有卒中的10% - 20%。脑实质基底节区是常见发病位置,约占全部高血压脑出血患者的60% - 65%,其起病突然、进展快。
CT在脑出血诊断中的作用:非对比剂CT(NCCT)是脑出血常规的检查成像方法,能快速、准确检出脑出血,其易用性及低时间成本使其成为常用诊断方法,对神经外科治疗决策至关重要。通过CT检查,不仅可以确定出血的部位、范围和出血量,还能帮助医生判断病情的严重程度,为制定治疗方案提供重要依据。
CT影像特征与脑出血预后的关系:一些CT影像特征与脑出血患者的预后密切相关。例如,头部CT平扫的混合征是一种血肿的异质性密度征象,由相对低密度区与邻近高密度区混合组成,需同时满足低密度区与高密度区边界清晰、两者密度差至少18HU、低密度区不被高密度区包裹等条件。研究表明,混合征对预测血肿扩大及不良预后具有一定价值,可能是活动性出血的CT征象。但也有部分研究得出不同结果,混合征是否可预测自发性脑出血经保守治疗后短期不良预后尚有待进一步探讨。
CT在脑出血血肿扩大预测中的应用:血肿扩大是脑出血患者预后不良和高死亡率的重要决定因素,预测血肿扩大发生对于脑出血的治疗及预后至关重要。除了混合征等常规影像征象外,CT增强及放射组学、人工智能等技术近年来也被广泛应用于脑出血血肿扩大的预测研究中。例如,通过影像组学技术从医学图像中提取高通量特征信息,并结合机器学习算法,如logistic回归模型、朴素贝叶斯模型、决策树模型等,可以实现对脑出血的快速准确诊断,并对病情进行评估和预测。深度学习中的卷积神经网络算法在脑出血相关患者诊疗过程多个环节也取得了一定成果,有助于提高诊断效率及准确评估病情。
综上所述,医学CT在脑出血的诊断、预后评估及血肿扩大预测等方面发挥着重要作用。随着影像技术和人工智能技术的不断发展,基于脑出血医学CT的研究有望为临床治疗提供更精准、有效的指导,进一步改善脑出血患者的预后。