回顾Python基础语法,辨析和C++等的不同~
由于很多院校的计科尤其软工专业在本科期间会设置大量有关不同编程语言的语法基础课,虽然整体来看大同小异,但还是有些细节在不同语言有所差异:比如分号在C++和Java必须加,Python和JavaScript则不必,而在Matlab中加入则不会在控制行输出;还有注释符号的不同,等等。本贴旨在快速总结各编程语言的基础语法,以便在阅读较难的项目代码时由于不熟悉基础语法而寸步难行~
目录
一.基础知识
二.数据类型
三.标识符命名
四.算术运算符
五.字符串技巧
六.判断结构
七.循环结构
八.函数
一.基础知识
1.Python特点:简洁、高效。
2.常见应用场景:桌面GUI小程序、科学研究、自动化脚本、人工智能、测试、网络爬虫、游戏开发、办公自动化、后端、数据分析、大数据、图像处理、运维开发等。
3.Python中的变量是无类型的!但其存储的数据是有类型的,这一点和JavaScript相似。通过type函数可以检测数据类型~
4.计算机不认识Python代码,但是有Python的解释器程序,我们平时所谓的安装Python,其实就是安装这样的解释器程序~
5.命令行中输入了Python即可进入到Python代码的编辑页面,通过键入exit()即可退出编辑。
二.数据类型
1.字面量即固定的值,如1/2/3,"hello"等值均为不同类型的字面量,Python中常见的数据类型有6种。如下:
2.Python中的字符串一般用双引号,注意下~
print函数中无需占位符,用逗号来扩展变量名,这和C++等不同~
3.数据类型转换,通过前置类型及括号可以实现。和其他语言一样,转换的规则并非肆意妄为。
4.任意类型都可以转换为字符串:
a=1325
print(type(str(a)))
5.整数转换为浮点数会丢失精度:
b=13.25
print(int(b))
print(type(int(b)))
三.标识符命名
1.内容限定:英文、中文、数字、下划线(规范来说最好别用中文)
2.Python大小写敏感!
3.不能用关键字命名:
4.命名规范:见名知意、下划线命名法、英文字母全小写
四.算术运算符
五.字符串技巧
1.Python支持三种引号定义的字符串:
a='a'
b="b"
c="""c"""
"d" #不用变量接收等同于一个注释
print(a,b,c)
虽然Python中的注释为#开头,但如果一个字符串没有被接收,等同于一句注释。
2.字符串是可以嵌套的:即单双引号之间:
a="'a'"
b='"b"'
print(a,b)
亦可在单个双引号之前加入\,也即转义符,接触双引号的本身意义效用,变为字符串中的元素:
c="\"hello\""
print(c)
由于转义符的存在,Python中使用绝对路径必须用双反斜杠才可以正常使用:
3.和其他语言一样,Python可以使用加号进行字符串的拼接
print("123"+"456")
print("123","456")
4.字符串的格式化
%为占位符,而%s表示将变量变为字符串放入占位的地方:
a="123"
print("hello,%s" %a)
数字类型亦可用%s来占位,但是实际上是被强制转换为了字符串~你也可以选择%d和%f,分别表示整数和浮点数类型~
num=1319
print("num:%s" % num)
print("num:%d" % num)
我们还可以用辅助符号“m.n”来控制数据的宽度和精度:
num=13.1719
print("num:%s" % num)
print("num:%7.2f"% num) #一共7位,小数2位
print("num:%.2f"% num) #小数2位
#不够的一律用空格补齐
还有一种快速格式化的方式,如果你熟悉JavaScript模板字符串或者Vue的插值语法,这玩意你一定会非常熟悉:
num=13.19
print(f"num:{num}")
需要注意的是,快速格式化不做精度控制,亦不限制数据类型~括号内可以写一个表达式,照样正常输入~
input函数用于输入一个字符串,如果输入数字用于计算别忘了转换类型:
num1=input("请输入一个数字:")
num2=int(num1)*2
print(f"其2倍是:{num2}")
六.判断结构
首先,对于C++和Java等语言,如果你多写了空格,除了不美观没什么硬伤。但是Python通过缩进判断语句归属,各位可不许瞎胡写~
譬如if语句,不需要花括号,只需要保证缩进统一,就可以将多个语句包含在判断条件内。另外,if后面不需要加括号包裹条件,只需要一个空格即可:
num1=input("请输入一个数字:")
num2=int(num1)*2
if num2>=20:
print("针不戳~")
当然你也可以设置多个条件,这里else if变为了elif关键字:
num1=input("请输入一个数字:")
num2=int(num1)*2
if num2>=20:
print("针不戳~")
elif num2<20 and num2>=10:
print("还行吧~")
else:
print("马马虎虎~")
还有一个区别:Python中的逻辑与、或、非可以直接写成英文单词and、or、not 。如果你想用符号,则分别是&、|。(和C++及Java相比少了1个!)
七.循环结构
while循环的写法和C++等类似:
i=1
while i<=10:
print(i)
i+=1
但区别在于,不能像C++那样在循环条件里面定义循环变量i,此外不能用++运算符!
而for循环,不能用自定义的循环控制条件,只能满足轮询机制——对标C++的STL标准库中迭代器的地位:
code="1319"
for item in code:
print(item)
C++和Java中两者大同小异,按个人喜好即可;Python中两者针对性都很强,前者适合自定义某种条件,后者适合遍历数据容器~
break和continue则和其他语言没什么区别:
八.函数
组织好的,可以重复使用的用来实现特定功能的代码段:
def myAdd(num1,num2):
return num1+num2
num1=100
num2=200
print(myAdd(num1,num2))
- 一方面,Python中的函数不需要声明返回值类型,只需要用def关键字说明即可;另一方面,同样需要先定义后使用。
- 如果没有用return返回数据,则默认返回值类型为None! 其类型为'NoneType',而不是C++中的void类型~
- 全局变量和局部变量没区别,各位一定要掌握这么基础的东西~
本帖如上,下期继续~