文章目录
Python学习(一)变量
由于研究生阶段学习主要使用Python和C++,并且最近忙着毕业设计,因此Java语言的学习整理先鸽了,接下来主要先完成Python的学习,语言规范其实大多数是相通的,写在这里主要是为了以后便于查阅,同时方便入门学习,在学习过程中主要参考了《Python编程从入门到实践》一书。
环境准备
目前常用的Python解释器有2.X和3.X两种版本,Python3通常对应着较新的版本,推荐使用Python3以上的版本学习Python,Python3的代码可能在Python2的版本中不兼容,同时Python2默认不支持中文,下边给出Python的官方下载地址:
本文学习使用的Python解释器版本为3.7.6(3.X的解释器在初学时差别不会太大),使用的IDEA为PyCharm,下边是PyCharm的下载地址:
安装教程网上有很多,在这里不再赘述,接下来开始Python语法的学习。
变量
变量的使用
与其他语言不同的是Python在使用过程中对于__缩进__有严格的要求,不能随意使用Tab调整代码位置,同时在定义变量时不需要声明类型,一行只能写一条语句,每个语句最后不需要分号标志语句结束。
# 一个Python定义变量并进行输出的示例,需要注意的是没有缩进,没有类型声明,没有分号。
name = "只想摸鱼"
print(name)
#常见错误 name not defined,tracback中出现这句话表明可能打印时的变量与定义时的变量名不匹配
Python的变量类型主要包括,整型int,浮点型float,布尔型bool(非0为真/True),复数型complex,字符串,列表,元组,字典。
如果想查看一个变量的数据类型,可以使用type函数,下边给了type类型的使用方法:
name = "只想摸鱼"
age = 18
print(type(name)) #<class 'str'>
print(type(age)) #<class 'int'>
变量的命名
Python的变量命名规范与Java语言类似;
- 变量名只能包括数字,字母和下划线,并且不能以下划线作为开头;
- 变量名中不能有空格,可以使用下划线_来分割单词;
- 关键词和函数名不能作为变量名;
- 变量名应简短并且易懂,推荐使用小写作为变量名。
可以使用以下方法查看Python中提前定义好的关键字,__import__关键字可以导入一个工具包,工具包有不同的函数等工具可以方便开发者使用:
import keyword
print(keyword.keylist)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
字符串
与其他常用语言比不同的是Python没有字符型变量,只要用引号括起来的,不管是双引号还是单引号,都是字符串。
name = 'A'
sex = "男性"
print(type(name)) #<class 'str'>
print(type(sex)) #<class 'str'>
修改字符串的大小写
常用的修改字符串大小写的方法主要有以下几种,title(),upper(),lower
;
下边将依次介绍这几个函数的功能;
#title()函数的主要作用是将每个单词的首字母大写
name = "talor swift"
print(name.title()) #Talor Swift
#upper()函数用于将所有的小写单词转为大写
name = "Talor Swift"
print(name.upper()) #TALOR SWIFT
#lower()函数用于将所有的大写单词转为小写
name = "Talor Swift"
print(name.lower()) #talor swift
字符串拼接
Python使用__+__号来拼接字符串
first_name = "Talor"
last_name = "Swift"
full_name = first_name + " " + last_name
print(full_name) #Talor Swift
添加空白(格式化输出)
编程中,空白泛指所有的非打印字符,如空格,制表符,换行符,可以用空白组织输出使结果更加容易理解。
与C语言类似的,Python使用\n
进行换行,使用\t
添加制表符。
print("PythonCJava")
#PythonCJava
print("\tPythonCJava")
# PythonCJava
print("Python\nC\nJava")
'''
Python
C
Java
'''
print("Language\n\tPython\n\tC\n\tJava")
'''
Language
Python
C
Java
'''
我们可以使用格式化输出的方式使代码更加整洁美观。
删除空白
在Python中"Python"
和"Python "
是有区别的,解释器会认为两者是不同的字符,能发现后者多出来的空白,但是有时候对我们来讲空白是没有意义的,因此我们在处理时需要删除字符中两端的空白,常用的方法有以下几个:lstrip(),rstrip(),strip(),
#lstrip()方法用来删除字符左侧的空白,输出中加入的引号是为了更方便的观察到空格是否存在
name = " Python "
print(name.lstrip()) #"Python "
#rstrip()方法用来删除字符右侧的空白
name = " Python "
print(name.rstrip()) #" Python"
#strip()方法用来把字符两侧的空白全部删除
name = " Python "
print(name.strip()) #"Python"
需要注意的是,上述操作虽然输出了删除空白后的结果,但是由于变量中的内容没有替换,对name输出时依然是为处理的结果,具体如下:
#strip()方法用来把字符两侧的空白全部删除
name = " Python "
print(name.strip()) #"Python"
print(name) #" Python "
name = name.strip()
print(name) #"Python"
因此如果我们为了删除变量中的空白,必须把处理后的结果重新赋值给该变量才可以。
使用字符串的常见错误
我们在使用单引号和双引号时可能或出现以下问题;
message = 'I 'm Lihua'
print(message)
'''
message = 'I 'm Lihua'
^
SyntaxError: invalid syntax
这个错误表明语法有问题,需要仔细查看具体的原因。但是通过箭头我们可以得知错误出现在第二个单引号后面
'''
# 为了解决上述问题,我们可以用转义符号\来解决
message = 'I \'m Lihua'
print(message) #I 'm Lihua
#\'限制'符号仅仅表示作为字符串内部的内容,而不作为表示字符串开始或者结束的标志。
数字
整数
在Python中可以对整数进行加(+),减(-),乘(*),除(/),乘方(**),求余(%)
等一系列操作:
print(2 + 3) #5
print(2 - 3) #-1
print(2 * 3) #6
print(2 / 3) #0.6666666666666666 其他语言进行除法运算一般只会有整数位的结果
print(2 ** 3) #8
print(2 % 3) #2
同时在Python中也可以使用()
来人为确定运算顺序
print((2-3)*4) #-4
浮点数
带有小数点的数被称为浮点数,大多数情况下浮点数的计算都会是符合预期的,但是有时候结果包含的位数也可能是不确定的:
print(2*0.3) #0.6
print(3*0.1) #0.30000000000000004
这种误差主要来源于浮点数值来源于二进制系统无法准确表示分数 1 10 \dfrac{1}{10} 101。
使用Str()
函数将数字转换为字符串
在Python中数字不能直接跟字符串进行拼接,如下所示:
number = 13.5
first_word = "我有"
last_word = "元钱"
print(first_word + number + last_word)
'''
Traceback (most recent call last):
File "E:/PythonLearning/Variable.py", line 4, in <module>
print(first_word + number + last_word)
TypeError: can only concatenate str (not "float") to str
错误提示为在这一句中没有办法把一个float类型的变量转换为str类型。
'''
#为了能够使拼接成功,我们可以用str()函数把数字转换为字符串
print(first_word + str(number) + last_word) #我有13.5元钱
注释
在Python中,使用#标识注释,在#后相同一行的所有元素都会被解释器忽略。
但是我们有时候可能会想将注释分为几行,这个时候可以使用___连续的三个引号___来标识注释的开始和结束,在引号中间的部分都会被解释忽略。
具体关于两种注释的示例在上文已经有展示,此处不再展示。