Ling Of Style

夕阳残照,汉家陵阙

导航

通往人工智能之路(一)

今年我已经44岁了,所从事的工作与编程没有一点关系,而且枯燥乏味。眼看人就要步入老年,故经常思索一些哲学问题,例如人是否可以永生。在没有使用ChatGPT之前,也思考过是否可以通过人工智能的方式达到永生,但对计算机的计算能力没有太多的信心,所以并没有沿着这个方向去思考。用了ChatGPT之后,我认为目前的人工智能已经接近于人类了。我还不清楚人工智能的原理,所以不好下结论人工智能能否被我训练成另一个我,但我认为还是有这个希望的。我希望我去世后,我能够生活在网络空间继续与这个世界交流。
为达到上述目的,我学习人工智能的首选语言是Python,主要的原因是这个语言与我大学接触到的Basic,C,Fortran相比十分简单。我不需要专注于如何实现底层的算法,这些算法已经由这一领域的牛人开发好并且封装在相应的包中,我只要学习如何调用这些包中封装好的函数实现我所需要的功能就可以了,这个过程相比于语法复杂的C/C++来说减轻我的心理负担。
我对于通过人工智能达到永生的想法可能比较简单,或许随着学习的深入我的看法会有所改变,但是没有关系,我先用简单的方法实现一个0.01版的我。
下面说说我对Python 的理解.
与Basic, Fortran和C相比,python简单的像是一个计算器。我是用windows中的笔记本或者linux 下的nano 来学习写python程序的。运行程序输入python xxx.py 命令,xxx.py是我的程序文件。程序也是在字符界面运行的。离漂亮的windows或者iMac 程序差距还是很大的,主要原因是我要先学习python的语法,至于实现漂亮的交互界面可以到后面去学习。
这里我只是分享我的学习体验,你可以通过阅读这些文章来理解python。python在语法上有更多灵活方便的表达方法这里可能不会一一提及到,一些编程经验这里也提及的很少,要想深入学习,还是需要找一本比较好的教材学习。
两个常用的函数
在学习写python程序前先介绍几个常用的函数,我们写程序就涉及到输入和输出,输入函数input(),例如 myname=input(),程序会停顿,让你输入。输出函数print(),例如print{myname)。
注释
在使用linux的时候我们经常会看到一个配置文件中注释要比实际有作用的部分还要多,在linux 源代码中也存在大量的注释。我记得在读书的时候用Fortran写了很长一段程序,因为没有写注释,过了一段时间自己都读不懂程序是怎么写的。所以注释非常重要。
python中的注释是用#开头。
其他一些基本的符号
\,如果一行程序没有写完,因为可读性的需要而另起一行,在第一行结尾要写一个 \,告诉python 这行程序没有写完,你需要接着读下一行。
在使用if,while,for 以及函数和类这样的复合语句的时候,C/C++等一些程序是用{}。而python 则是用: 和“Tab”缩进来表示与C/C++的{}一样的效果。
if x <10:
print(x)
缩进在python 语言中很重要,如果:相当于“{”,那么缩进就相当于“}”,如果没有缩进python 会认为这是独立的一行,而不属于上面的代码块。
如果代码的层次比较多,缩进也会跟着增加。
缩进的好处是让程序显得很清晰。
python每个语句结束后不用像C语言那样需要以:结尾。但是如果你要是把多个语句写在同一行上,每个语句之间就要用;隔离。
基础运算
数学中基本的运算在python中与其他语言没有差异。
例如:
求2+3=?
sum=2+3
print(sum) #在屏幕上打印
5
下面是python运算符,这些运算符几乎适用于所有python程序的计算场景,例如两个矩阵计算。
操作符,操作,例子,求值为
**, 指数 ,2 ** 3, 8
%, 取模/取余数, 22 % 8, 6
//, 整除/商数取整 ,22 // 8, 2
/ ,除法 ,22 / 8 ,2.75
* ,乘法, 3 * 5, 15
- ,减法 ,5 - 2, 3
+ ,加法, 2 + 2 ,4
求绝对值abs()
python有比较丰富的数据类型,先从简单的入手,例如字符串(string),整型(int),长整型(long,就是位数比较多的整型),浮点(float,就是小数),布尔(bool),复数(complex)。在其他语言中复数是不作为基础的数据类型,如果实现复数的运算需要自己写函数,或者学习调用其他的类库。
python 使用变量前不需要声明变量类型,这点很方便,但也会增加阅读程序的困难,所以还是多加注释比较好。
不同数据类型之间可以相互转换,例如int(3.14),得到的就是3。
下面是常用的三个转换函数。
str()转换为字符型。
int()转换为整型
float()转换为浮点型
列表和元组
列表用[]表示,元组用()表示。
例如:
a=[1,2,3,4,5,6],列表。
b=(1,2,3,4,5,6),组元。
组元和列表的区别是组元的大小不能改变,而列表的大小可以随意改变。读取列表和组元的方法是一样的,
例如:
print(a[3]), 输出为4。左边第一个元素索引为0,[3]表示索引为3。
print(b[3]), 输出为4。左边第一个元素索引为0,[3]表示索引为3。
从我已经读过的书籍里面,列表的使用更多一些。
字符串
name="Wen ZhiXin",字符串用单引号''和双引号""都可以。
字符串相当于组元,想要获取字符串中的某一个字母,可以用组元的操作方法。
print(name[2]),输出为n。把字符串当成是存储字符的组元就可以,空格也占一个字符。
与字符串相关的常用函数len(),返回值是字符串的长度。例如length=len(name);print(length),显示10
字典
字典用{}表示。字典相当于指定索引的列表。
information={'name':'Wen Zhixin','age':18,'Nation':'Chinese'}
print(information['name']), 显示 Wen Zhixin
print(information['name'][2])显示 n
刚开始看的时候会让人感觉迷茫,实际写一段小程序,然后思考一下,就会发现字典其实和列表就相差在索引上,列表的索引是从0,1,2,3……开始排列的,而字典是指定索引。
例如
information=['wenzhixin',18,'Chinese']
print(information[0]),显示是wenzhixin。
print(information[0][0]),显示是w。
条件判断和循环
python的判断和循环语句使用方法跟C语言一样,只是语法上不用{},而是用:和缩进来表示语句块。
if 条件:
缩进
else:
缩进

if 条件:
缩进
elif 条件:
缩进

while 条件:
缩进
break,如果执行遇到break 语句,就会马上退出while 循环子句。
continue,如果程序执行遇到continue语句,就会马上跳回到循环开始处,重新对循环条件求值(这也是执行到达循环末尾时发生的事情)。
for 循环和range()函数,for i in range(5):
sys.exit()提前结束程序
与判断和循环相关的就是逻辑操作和运算符,这些运算符也与C语言一样
操作符 含义
== 等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
布尔操作符,也与C语言一样。
and(和)、or(或) 和not(非)
and 操作符的真值表
表达式 求值为
True and True True
True and False False
False and True False
False and False False
or 操作符的真值表
表达式 求值为
True or True True
True or False True
False or True True
False or False False
not 操作符的真值表
表达式 求值为
not True False
not False True
函数
函数的定义如下,def + 函数名字构成,函数名里面是参数列表,参数可以是一个,也可以是多个。python 函数定义非常友好,参数类型不用定义,这样就可以输入任何类型的参数。参数后面是:实现函数功能的程序块则需要缩进,这样python解释器会认定:后面所有缩进的语句都属于这个函数。
def function_name([arguments]):
"optional documentation string"
function_suite
例子
def addMe2Me(x):
'apply + operation to argument'
return (x + x)

python类与C++类似,都是以class开头,后面跟类名,然后是参数和:
class ClassName(base_class[es]):
"optional documentation string"
static_member_declarations
method_declarations
创建类很简单,class_a = yourclass() 即可。调用类的封装函数,class_a.func_in_yourclass()。
一般类中我们都会有一个初始化函数,python 中的初始化函数用 def__init__(self, youre parameter=value): 来定义。

posted on 2023-03-31 18:08  wenzhixin  阅读(41)  评论(0)    收藏  举报