《Python编程,从入门到实践》- 01 变量和简单数据类型
由于一些原因,我不得不去要用python去做开发了,就开始学习python,之前的基础只能让我读懂代码,并简单开发,现在正好系统学习一下
变量
首先来看一段代码
name = "Alice" print(name)
我们添加了一个名字为name的变量,其值为"Alice”,运行之后,会打印出 “Alice”的字样
在python中每行代码结尾不需要加 ';' 默认一行就是一行代码,不同于java或c++(以至于我写python常常会加分号)
还有一点要注意的是,python中没有大括号这个东西,“块”这个概念其实是按缩进来的,也就是“不要随意缩进”
print这个函数可以随意输出任何的内容,同时可以输出多个内容
message = "Hello Python Crash Course reader!" print(message, name)
如果你这样输出 会再 message的内容与name的内容之间存在一个空格,如果你不想存在这个空格,那么用“+” 连接
当然对于变量名称,我们也是不能随意命名的,它必须满足以下条件:
- 只能包含字母,数字和下划线,不能以数字开头
- 不能含有空格
- 不能用关键字或者函数名命名
- 变量名最好简短且有意义,能让人一看就明白
- 慎用i I l 1 O 0 o 这种容易混淆的字母数字
当然如何去描述一个变量名,函数名可以参考《代码整洁之道》,不论你是用什么语言做开发的,命名都是很重要的一部分
还有一点,在python中创建一个变量是不需要提前定义这个变量的类型,也就是说,这个变量名称在后续的使用中一定要注意拼写问题,举个例子
name = "Alice" print(nam)
不同于java,c++ 这个错误编译器是不会给你报错误的,也不会飘红。所以在使用时请注意这点。
字符串
字符串指的就是一系列的字符,在python中,单引,双引,引起来的都是字符串。不同于java和c++,单引是表示单个字符。
我在这里抛个疑问:是否在python就不存在单字符这种概念
对于单引和双引 其实方便了我们对于字符串内的一些引号的使用,不同于java,在java中某个字符串内如果要使用双引号就必须转义
对于改变字符串的大小写函数,主要提供了三个
address = "titless book" print(address.title()) # title 将每个字符串的首字母转换为大写 print(name.upper()) # 转大写 print(name.lower()) # 转小写
当然 字符串之间也是可以拼接的,通过“+”号来拼接
注意一点,不要直接将数字和字符串拼接,如果你想给某个字符串去拼接某些数字,得先把这些数字转化为字符串
我们在字符串中也可以通过添加一些制表符换行符等内容修改输出显示
对于空白,有些时候很令人迷惑,尤其是尾巴处的空格,python自提供了一些去空格的函数
print("\tPython") # 制表符 print("\npython") # 换行符 python中的print默认换行 word1 = "python " word2 = "python" print(word1 == word2) # python 中 应该可以肯定 '==' 对于字符串而言比较的是内容,由同一类创造出的对象,如果用== 比较比较的又是什么,暂留 word1 = word1.rstrip() print(word1 == word2) word3 = " p y t h o n " print(word3.rstrip()) # rstrip() 这个函数只能去除尾部多余的空格,并不能全部去除 print(word3.lstrip()) # lstrip() 去除前多余空格 print(word3.strip()) # 去除两侧空格 print(word3.replace(' ', '')) # 如果想全部去除或替换,则使用replace()函数 # 对于strip系列函数,括号里可以带其他参数 word3 = "pythonnnnnnnnnnnnnnnnnn" print(word3.rstrip('n')) # 会把末尾一连串的n都消掉,但是如果参数不是最后一个字符那么则无法消除,其他同理
补充一句,内容是基于Python 3.x的,在部分方面2和3有着天差地别
比方说print,再2中是不需要加括号的,以及注释,在2中如果需要使用中文,需要另外操作
数字
整数,整数可以执行+ - * / 四种混合运算,顺便说一下 在python中 ** 的意思是乘方
浮点数,带小数点的都是浮点数,在python中 应该没有float和double这种区别
之前也说了如果你想在拼接时使用数字,需要转化。转化时使用 str() 函数即可
还有一点很重要。在python3 中 3/2 会计算出1.5,在python2 中 3/2 则会计算出1。如果需要在py 2- 3直接相互转化 务必注意之间的区别于细节
小结
其实作为一个java开发者来学习python,其实是有很多不习惯的地方,当然作为一个非萌新来讲。系统的学习,就要更多的去思考,比方说我在看书的时候就一直在想,变量所占空间的问题。我并没有再书中看到这点,可能是入门吧,还不太涉及这点。但是对于java而言,定义变量前需要定义类型,那么每个变量的空间其实取决于类型,python没有虚拟机这个概念,它的变量所占空间其实是随着os的变化而变化的。