Python与C的不同语法

###今年的选修课是网页设计,然而,看见选修里的Python课,有些心动,凭这个语言被评为2018的年度编程语言,再加上想多学习的心态,我又选了一门选修课。学的过程中,发现Python语言有很多可点可圈之处。
##谈谈Python语言与C不同的语法(部分)

  1. 格式
    Python语言中,采取缩进语句格式。#开头的语句是注释,而在C语言里面是//后面为注释。注释过后,其他每一行为一个语句,当语句以:结尾时,缩进语句视为代码块。说起缩进,有时让人很头疼,在我练习的时候,错误几乎都是格式问题。当然,这种强制性的缩进也使得我们写出的代码块更加规范,也避免了复制粘贴没意义的完成作业。

  2. 数据类型
    数据类型方面与C语言大致相同。要注意的是字符串。
    Python语言中,字符串是以单引号’ ‘或双引号" “括起来的任意文本。而这两个符号只是一种表示方式,不属于字符串的一部分。如果想输入’作为字符,输入时可以用”"括起来,如果字符串中既包含单引号又包含双引号,则使用==转义字符==
    在这里插入图片描述此时,print括号里两端的单引号为表示方式,转义字符\后的’和 “的性质为字符,输出结果也包含了’和”。
    关于转义字符,可转移很多字符,字符\本身也要转义,表示为\。它所表示的字符就是\。其他与C语言相同。
    \n换行
    \t制表符
    如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r’ ‘表示’ ‘内部的字符串默认不转义。
    特殊的,如果字符串内部有很多换行,Python语言中允许使用’’’…’’'的格式表示多行内容。

  3. 运算符
    (1)
    /为除,计算结果为浮点数,即使两个数整除结果也为浮点数。
    //地板除。直取结果的运算部分,为整数。
    %取余运算,取其余数部分,也为整数。
    *表示为乘法运算,两个这样的符号表示什么呢?
    看一下运算结果:
    2**5等于2的5次方,结果为32
    是的,在这里表示的是2的5次方。
    (2)
    空值
    Python语言中,空值用None表示,不可理解为0,0是有意义的,而None是一个特殊的空值。
    (3)
    Python语言中与运算 and,非运算not,或运算or,这一点与C语言完全不同,在判断语句中的栗子:

C语言的语法:if x>4&&x<7
Python中: if x>4 and x<7

  1. 关于字符串
    在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言.对于单个字符的编码,采用ord()函数,获取字符的整数。chr()函数把编码转换为字符。
    运行参考如下:

    要计算str中包含多少个字符,可以使用len()函数。这有点像C语言中计算字符串的strlen()函数。
    关于Unicode编码,以下资料供大家参考:

因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。
由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。
但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。
你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。
因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。

  1. 使用list和tuple
    list是python语言内置的一种数据类型list 其为有序集合,(ps:有些类似于C语言中的数组),但是可随时添加与删除。上面提到的len()函数可计算list元素的个数。
    tuple为元组,也是有序列表,但一旦初始化,就不可修改里面的任何元素。

在list中,运用索引访问list中的每一个元素,从0开氏,但不可越界,最后一个元素为list元素个数-1,[这与C语言中查看数组各个位置的元素时遵守的一致,不超过数组长度-1。]还可以用-1做索引,直接获取最后一个元素,同理倒数第list元素个数个也时越界的。
(1)
追加元素到末尾
格式:名称.append(‘添加的内容’)
举个栗子:
在这里插入图片描述
(2)
插入元素到指定的位置
格式:名称.insert( 插入的位置数值 ’ 插入内容 ')
(3)
删除末尾元素
格式:名称.pop()
’ 删除的内容 '

(4)
替换某位置的元素
采用直接赋值法即可

关于tuple
现在,worker这个tuple不能变了,它也没有append(),insert()这样的方法增加元素。其他获取元素的方法和list是一样的,你可以正常地使用worker[0],worker[-1],但不能赋值成另外的元素。
那么不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来。
如果要定义一个空的tuple,可以写成这样
worker=()
如果定义一个只有一个元素的tuple,如果这样定义:worker=(1)

该定义是错误的❌
此时定义的不是tuple,而是1这个数。这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
正确的应该是这样:
worker=(1,)
所以,**只有1个元素的tuple定义时必须加一个逗号 , **来消除歧义。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值