Python实例入门
先叠个甲,这篇文章可能有C语言基础会好理解一点
这段代码是实现一个简单的功能,要求用户给出一个带有温度或者华氏度单位的数字,后续会进行自动转换
先上代码
#TempConvert.py
TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in ['F','f']:C = (eval(TempStr[0:-1])-32)/1.8print("转换后温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:F = 1.8*eval(TempStr[0:-1])+32print("转换后温度是{:.2f}F".format(F))
else:print("输入格式错误")
效果
一、Python与C语言的不同
博主之前主要是写C语言的,详情可以见个人主页(狠狠引波流)
所以在学习python时会关注一些共同点和不同点
第一点
python真的要比C语言简单得多,好上手(确实是高级语言),相较之下C语言过于基础,很多底层的东西需要自己去编写,尤其是在处理字符串方面可以说是十分复杂,具体可以见博主本人和C语言指针、字符串较劲的文章
那么python呢?可以看看这些关键字
哇浪,这么厉害
这只是基础的,还包括以下运算函数
尤其是这个max和min函数,学完C语言真是觉得一堆代码就这么被三个字母取代了确实有点意思
第二点
那么古尔丹,代价是什么?
python虽然方便了用户编写,但是更少的底层相关自由度便是用户不便控制过于底层的东西,所以要是做系统底层的优化的话效果不如C语言(因为C实在是太底层了,python打包了很多东西)
而且就硬件领域而言,C兼容性确实强(编程界老资历这一块),问世时间太早了,而且正好赶上集成电路与数字电路大发展时期,所以至今很多工厂里的硬件系统还是最基础的C语言编写,稍微好一点的就是STM32系列板子(不是智能工控买不起,而是老板子更有性价比)
第三点
逐行解释与通篇编译(这个好像还是个计算机基础考点)
C语言这个老登,用的叫编译器,可以理解为所有代码都输入完之后,计算机统一一次性把这些代码编译为二进制语言,然后交给硬件去处理,所以是整体运行,自然就是运行速度要快、优化强,但是编译这个方式过于基础,不适合高级程序编写,只能编写不是特别长的代码(否则会很冗余,不便于排查、更新)
Python则可以说偏向解释器,就是你每编写完一段代码,计算机就把这一段转化为二进制去交给虚拟机预处理,所以会出现代码差点写完但是虚拟机已经帮你预测出是否会爆内存的情况,这个特性虽说会使Python的运行速度要慢一些(对性能要求强),但是赋予了Python极大的动态性、灵活性,这也是为什么当今计算机性能一上来,大家都爱用Python的原因
总而言之,各有优略,各有用途
硬件——更基础的C语言
数学计算——更灵活的Python
二、Python与C语言相通之处
说完了不同就说说相同,逻辑部分与代码思维肯定是相通的,因为目的都是让计算机去处理大量数据(只要是主流编程语言这一点都是一样的)。举个例子,人要是解一个方程,肯定是设未知数然后运用数学的各种运算律去算出具体值,但是编程思维就是暴力的枚举(巧了,之前也写过文章介绍相关计算机思维),不断循环直到满足条件跳出。
除此之外,嵌套关系也是大体相同的,无非就是一些细节方面不太一样,C语言是靠大括号表示嵌套蕴含,Python则是十分简洁的缩进即可
逻辑用词方面也是大体相同的,就如同上面的实例里面if、elif、else,简直和C语言里面的表述一模一样,所以就不多在后文赘述了
三、实例讲解
1、处理字符串的本领
Python相较于C,灵活就灵活在了处理字符串的本事。
Input(“XXX”)就是默认用户输入的东西格式是字符串,XXX就是提示词,如果就是Input()那就相应的没有提示词,直接等待用户输入
与C有一点不同,Python的字符串不需要编程者手动转化为数组(指针)再加以赋值,直接用等号赋值就可以了,python在这一块是相对灵活的,如下
TempStr = input("请输入带有符号的温度值:")
当然,本质还是和C语言是一样的,这个字符串也是个数组(只不过用户编写的时候不用特意强调这个字符串的数组特性),而且这个数组更加智能,已经帮你给里面的每个字符编好了号码,正着编的有,反着编的也有,如下图
极大的简化了代码
所以
TempStr[0:-1]
就是用户输入的第一个字符(数字第一个数)到(:表示从冒号前到冒号后)倒数第一个英文字母,但是英文字母不包含,含前不含后,比如输的是35C,那么只会包含35在里面。
此外,Python的数组也可以配合in函数用在检索领域,就比如下面这个
TempStr[-1] in ['F','f']
TempStr[-1] in ['C','c']
就是在看用户输入的最后一个字母是F还是C,在F、f或C、c中检索,同时包含了小写的可能性,真的灵活多变又简便,这要是C语言真的会很麻烦。(这也是为什么AI模型用Python,就这文本切片简化度时真能捧上天)。
2、处理输出
主要就是这两张图,配合代码理解一下,不难而且和C语言类似
3、邪典eval函数
这个东西就是负责把字符串自动的转化为Python可以处理的格式,比如字符串32C切片后变成字符串32,如果加个eval函数,这个字符串32就会自动变成可以运算的int类型的32(懒人福音)。
C = (eval(TempStr[0:-1])-32)/1.8
eval就是能把文本\字符串变成Python可以处理的形式,如下图
第四个就是直接运行
print("Hello")
所以这个东西在工程实例里面比较好用,直接能把文档里\JSON格式里的字符串转成可执行的代码,含金量自不必多言。
可是它也十分危险,如果让用户决定eval的括号里面是什么,如果输了个删除系统盘之类的指令,就真的执行了,那可就闯大祸了。
但是因为真的太方便了,大家还是爱用。
风浪越大鱼越贵这一块
4、注释
这个与C语言不太相同,但也只是无关紧要的小细节
Python用的是#和'''
四、总结
学过C语言的,就不用怕Python,高级语言更简便
没学过的,用Python作为入门语言也不错,简便的理解计算机编程,但后期是肯定要往更深的地方学,还是得去学C语言
感谢北京工业大学提供的PPT素材
以上均是个人理解,有什么错误欢迎各位大佬在评论区指出~