我是靠谱客的博主 忧郁乌冬面,最近开发中收集的这篇文章主要介绍从MATLAB到Python3 (1),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前一直在用MATLAB,现在想逐渐过渡到Python,基本上算是从零开始,这里会分次写一些Python语法笔记,以Leetcode 上的一些简单练习题为例,留待以后查询。这些笔记可能只对初学者有所帮助,对Python3已经有所了解的同学请直接略过。

宝石与石头
        J = "aA"
        S = "aAAbbbb"
        a = 0
        for i in range(len(J)):
            a = a+S.count(J[i])        
        return a
  • for循环 for i in range(0,10):
  • if判断 if s[i] == J[i] :
  • .count()用法 ,用于统计字符串里某个字符出现的次数。

    与MATLAB主要区别在于,写循环或者判断语句时,Python多了冒号且不需要end,通过缩进对齐来表示单元。此外,Python和C语言一样,默认计数都是从0开始的,比如J = 'aA', len(A) = 2,但是for循环中i = [0,1]

转换成小写字母
        str = 'Hello'
        str1 = ''
        for i in range(len(str)) :
            x = i
            if (64<ord(str[x])<90) :
                a = ord(str[x]) + 32
                str1 += chr(a)
            else:
                str1 += str[x]        
        return str1            
  • ''"" 在Python中不区分
  • ord() 将字符转化为ASCII码数字,chr() 将数字按照码表转化为字符
  • 字符串的加减不是数字意义上的加减,是拼接或者删除子字符串的意思

    在MATLAB中很少处理字符串,感觉Python真的很方便,字符串相关函数有很多

翻转图像
        A = [[1,1,0],[1,0,1],[0,0,0]]
        for i in range(len(A)):
            A[i] = A[i][::-1]
            b = A[i].copy()
            #将A按元素翻转,在不同地址下复制A的一个元素
            for j in range(len(A)):
                b[j] = 1 - int(b[j])
                #对复制的b按位取反,这时只改变b而不改变A
            A[i] = b
        return A
  • A[1][0:-1] = [1 1],表示将A的第一行从头输出到倒数第一个之前,反转字符串A[1][::-1]
  • b = a.copy(),浅层copy,把a地址的值复制到b对应的另一个地址,如果直接说b = a,这时a和b是对应同一地址的,以后会互相影响

    复制这一块,Python和我较为熟悉的C、MATLAB都很不一样,如果不特别强调就不会分配另外的内存用于复制。a和b共用地址时,一个改变另一个跟着改变,连最基本的交换数值都实现不了。


后面还做了一些题,不会的时候觉得很有意义,会了回头看又感觉好像也没什么,就不一一列举,值得留意的语法有:

  • 十进制转二进制a = bin(a)
  • 反转字符串中的单词t = ' '.join(s.split( )[::-1])[::-1]
  • split()通过指定分隔符对字符串进行切片,这里指定的是空格
  • str.join() 用于将序列中的元素以指定的字符str连接,生成一个新的字符串。

最后

以上就是忧郁乌冬面为你收集整理的从MATLAB到Python3 (1)的全部内容,希望文章能够帮你解决从MATLAB到Python3 (1)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部