Python 自写函数内容实现大小写转换(含详细注释解析)

信息须知:

1、ord()函数作用:以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值

2、chr()函数作用:以一个数字(应为ASCII码)作为参数,返回对应字符。

3、ASCII值:(1)A-Z:65-90 ;(2) a-z:97-122 ; (3)大小写ASCII相差32

思路分析:

一、小写转大写:

     1、ord()函数取字符的ASCII值,若该值在97-122之间为小写字母

     2、将该ASCII值减去32,其为该字符小写字符对应大写字符的ASCII值

     3、通过chr()函数将该ASCII值转换为对应字符

     4、输出

  二、大写转小写(同上,逆行)

代码展示:

# python 自写函数进行大小写转换
# *1: ord()函数作用:以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值
# *2:chr()函数作用:以一个数字(应为ASCII码)作为参数,返回对应字符。
# ASCII:A-Z:65-90 ; a-z:97-122 ; 大小写ASCII相差32

a=' Python.ZhuanHuan.#&.01'
print(a.upper())   #直接调用转大写函数作对照
# 注:a.upper()函数并没有改变a;此语句执行后,a仍为' Python.ZhuanHuan.#&.01' 
#print(a)  检验a.upper()没有改变a
for i in a:
    if 97<= ord(i) <= 122: #小写字母符合if,执行 
        upper=ord(i)-32    #ASCII-32,将小写字母的ASCII值转化为大写字母ASCII值
        print(chr(upper),end='') #chr(upper)返回ASCII表upper值对应的字符
    else:
        print(i,end='')
print() #换行

#----------------------------------------------------------------------------
a=' Python.ZhuanHuan.#&.01'
print(a.lower())  #直接调用转小写函数作对照
for i in a:
    if 65<= ord(i)<= 90: #大写字母符合if,执行 
        low=ord(i)+32    #ASCII+32,将大写字母的ASCII值转化为小写字母ASCII值
        print(chr(low),end='') #chr(low)返回ASCII表low值对应的字符
    else:
        print(i,end='')
print() #换行

输出结果:

 PYTHON.ZHUANHUAN.#&.01
 PYTHON.ZHUANHUAN.#&.01
 python.zhuanhuan.#&.01
 python.zhuanhuan.#&.01

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
实验目的与实验环境 掌握曲线拟合的最小二乘法 探求拟合函数的选择与拟合精度间的关系 实验环境 操作系统:Windows XP 程序语言:Python 2.5和C++ 二、实验内容与实验步骤 实验内容: 利用数据拟合的最小二乘法从一组数据中找出其规律性,并给出其数学模型的近似表达式。 三、实验过程与分析 1.在试验过程中,由于计算公式较为复杂,在编程实现过程中遇到很多逻辑错误。例如在使用SOR方法解正则方程组时,计算迭代向量时错误的把下标写错,从而导致计算结果错误,而这类错误很难发现,为了解决此类问题,故在调试阶段,所进行测试的数据为已知精确函数的一些数据,每完成一系列计算,就打印出计算结果,与已知精确函数相比较,从而找出这些错误的出处。 2.在使用SOR方法求解正则方程组时,由于松弛因子选择不当,使得达到精度要求所进行的迭代次数很大,为了能够较快的达到精度要求,多次改变了松弛因子的取,在经过多次修改取后发现当松弛因子取为1.36时相对较快。 四、实验结果总结 实验测试中分别用最小二乘法进行三次多项式、二次多项式、四次多项式的曲线拟合,并计算出了三个拟合曲线的均方误差。由运行结果可知,三次多项式的均方误差小于二次多项式的均方误差,二次多项式的均方误差小于四次多项式的均方误差,因此,三次多项式的拟合曲线相对较好。 通过此次试验,使我对最小二乘法有了更加深刻的认识,对其在生产实践和科学实验中的应用也有了一定的了解。在求解正则方程组时使用了SOR方法,也使得我更加熟练的掌握SOR求解方程组的方法。同时,通过将书中的理论公式转换为代码,使得我的编程能力有了一定的提高。
【资源说明】 基于Python.Numpy实现BP卷积神经网络识别手写数字源码(详细注释+使用说明).zip 文件夹结构功能 1.文件夹 - data:mnist手写数字数据集,包训练、测试数据 - parameters:神经网络训练结果保存路径 - figure:该文档中的图片 2.文件 - activate.py:激活函数层,包Sigmoid,SoftMax - bp.py:BP神经网络层,全连接层 - BPmain.py:BP神经网络测试文件 - CNNmain.py:卷积神经网络测试文件 - conv.py:卷积层 - load_mnist.py:mnist数据加载 - module.py:网络层、结构接口定义 - pool.py:池化层 - saveandread.py:神经网络参数保存加载 # 三、项目运行 ## 1.BP神经网络测试 1.1测试目标 - 使用BP神经网络对数据进行分类 1.2测试方式 - 运行BPmain.py文件 1.3测试结果 - 1.训练完成后输出如下 ```bash 开始训练: 2023-02-18 20:16:09.905283 训练已完成练100% 结束训练: 2023-02-18 20:16:56.179266 ``` - 2.测试结果如下图所示,可以看到,神经网络可以将红点与蓝点进行分类 ![](./figure/Figure_1.png) - 3.训练误差如下图所示,可以看到,训练过程中误差在不断缩小 ![](./figure/Figure_2.png) ## 2.卷积神经网络测试 2.1测试目标 - 使用卷积神经网络识别手写数字 2.2测试方式 - 运行CNNmain.py文件 2.3测试结果 - 1.训练完成后输出如下 ```bash 第1次训练开始: 2023-02-18 18:45:01.447278 训练已完成100% 第1次训练结束: 2023-02-18 19:39:28.603512 测试已完成100% 第1次测试结束: 2023-02-18 19:43:05.641130 第1次训练正确率:66.28% 第2次训练开始: 2023-02-18 19:43:05.651106 训练已完成100% 第2次训练结束: 2023-02-18 20:46:34.102317 测试已完成100% 第2次测试结束: 2023-02-18 20:51:22.949554 第2次训练正确率:82.46% 第3次训练开始: 2023-02-18 20:51:22.957532 ... ``` - 2.训练后测试正确率如下图所示,可以看到,随着训练次数增加,正确率在不断提高 ![](./figure/Figure_3.png) ## 3.CNN参数读取测试 3.1测试目标 - 读取训练时保存的参数数据进行数字识别 3.2测试方式 - 运行saveandread.py文件 3.3测试结果 - 1.测试结果如下图所示,可以看到,神经网络可以正确的识别手写数字 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪&

感谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值