本文将简单阐述一些基本的python知识点,大多是本人在学习过程中的心得体会。简单常用的编程概念和思想将不再描述。若有理解错误,还望指正。
一、python运行,调试
python和相关软件可以在官网下载。本文采用的版本是:Version: Python 3.7.0 + PyCharm 2019.2
在这里推荐Notepad++文本编辑器可用于编写程序,转换编码,很多txt文件如若使用windows自带的文本编辑器打开会出现一些错误。
python的运行有两种方式:命令行模式+python交互模式。
①命令行模式:win+r快捷键,输入cmd,可以进入电脑命令行模式---->输入相应文件名进行执行(可以在notepad中编写好再执行.py文件)
C:\> python hello.py
②python交互模式:win+r快捷键,输入cmd,可以进入电脑命令行模式---->输入python回车,即可进行编辑
>>> ... ... (这时是直接进行程序编写)
输入exit()回车即可退出
当然利用PyCharm也可以进行编写,这就如同我们在VS中编写C项目一样。大家根据实际情况进行使用。 可以打断点,一 一进行调试。
快捷键:查找ctrl+F,替换ctrl+R
二、基本语法学习
(1)命名规则:
命名有大小写区分,由大小写字母、数字、下划线_ 混合组成。数字不可开头,其余可。
由两个及以上单词组成时:
①first_name 全小写,中间用下划线连接
②FirstName/firstName 各单词首字母大写/除首字母外,各单词首字母大写
(2)基本规则:
缩进:python中的缩进是tab或者4个空格,同一个py文件中两者不能混用。P有Charm中选中需要调整缩进的行,按tab可向右缩进,shift+tab可以向左缩进
注释:
行代码注释,在该行代码后打一空格再使用#即可
段代码注释使用/* ... ... */
一般计数从0开始。
(3)IF语句的学习:
if 语句的格式是:
if 条件:
满足条件执行语句①
执行完①或者没有满足条件时执行语句②
或者
if 条件:
满足条件执行语句①
else:
不满足条件执行语句②
或者
if 条件①:
满足条件①执行语句①
elif 条件②:
满足条件②执行语句②
... ...
else:
都不满足条件则执行语句
举例一:
name = input("请输入您的姓名:") #input函数的使用,先输出字符串(可没有),再将用户输入的数据存入name字符串
age = input("请输入您的年龄:")
age = int(age) #因为input得到的是str,所以需要转换为int
if age >= 18: #if语句的使用,冒号非常重要,不可遗漏 比较运算符:== != /= //整除 %取余... 逻辑运算:not、and、or
print("%s,您%d岁了,已经成年了!" % (name,age)) #注意print的使用方法,%d、%s等都是其他语言里常用的占位符,但此处不用逗号分隔,而是使用%
else:
print("您还未成年!")
输出结果:
请输入您的姓名:**
请输入您的年龄:20
**,您20岁了,已经成年了!
if 后的条件如果满足,则执行其冒号后的代码块。此代码块是指此冒号后有缩进的那一部分。否则执行else / elseif / 没有缩进的代码块。
如果需要嵌套if语句,只有缩进变化,其余不变,与其他语言编码相似。
Tips: 如果条件很长影响阅读可以换行操作
例如:
if ((player_int == 1 and computer_int == 2) or(player_int == 3 and computer_int == 1) or(player_int == 2 and computer_int == 3)): #条件很长,为了便于观看添加括号进行换行,其中换行后需要多添加一个tab,为了区分代码块内容(4)循环的学习:①while循环:while 条件A: #满足A则循环执行B 执行代码块Btips:可以添加断点debug(shift+f9),单步调试f8进行学习。Pycharm运行快捷键:shift+f10 运行当前py :shift+ctrl+f10一般计数器从0开始,条件中使用</>;从1开始,使用>= / <=需要借助计数器。②break和continue的使用:(只针对当前循环有用)break:某一条件满足时退出循环,不再执行后续重复的代码块continue:某一条件满足时,不再执行后续重复的代码块③for循环:迭代遍历,按照顺序进行数据提取。对每一个元素,执行相同的操作迭代:顺序的从列表中依次获取数据可以遍历所有非数字型变量,如元组、列表、字符串、字典举例二:(涉及到后文的list知识)name_list=['abc','def','ghi'] for my_name in name_list: print(my_name)
(5)函数的使用:①随机数生成:
import random
random.randint(a,b) #可以得到[a,b]间的随机整数,包括ab
②print函数的使用:
print("%s,您%d岁了,已经成年了!" % (name,age)) #注意print的使用方法,%d、%s等都是其他语言里常用的占位符,但此处不用逗号分隔,而是使用%print函数默认输出后进行换行print('*',end='') #借助end可以将默认的换行符替换为自己所需要的符号或是空若需要换行 :print('')转义字符 \ 的使用:\t 制表符,用于文本垂直对齐 \n换行符 \" 转义了“,可以输出” ③函数的使用:函数将具有独立功能的代码块进行封装,让开发人员更方便的进行使用定义函数:def 函数名(): 函数内容执行程序时,只有主动调用函数才会执行该定义函数的代码块,但是定义函数必须在调用之前。程序是顺序执行的,当读到def就清楚了有这样的一个定义,但实际内容并未执行。可以用return进行函数返回值的输出,return关键字后的函数内容不会被执行函数注释:def 函数名(): """注释""" 函数内容开发过程想要查看就将光标放在函数名上,然后ctrl+Q即可查看注释形参和实参:形参:定义函数时,小括号中的参数,用于接收参数,在函数内部作为变量使用实参:使用函数时,小括号中的参数,用于将数据传入函数内部④模块:模块就好比一个工具包,每一个py文件都是一个模块,其中的变量和函数都是可以给外界使用(借助import关键字注意:模块名就是标识符名,所以也应该符合命名规则import 包名包名.变量/函数 即可调用新项目包中从文件管理器中打开有__pycache__文件夹,其中保存了.pyc文件,代表的是已经被编译过的文件,直接执行可以加速执行速度⑤数据类型:列表list、字典dict、元组tuple列表即为其他语言常说的数组,用存储一串数据,[ ]表示,两项之间用‘ ,’分隔,序号从0开始【有序】数据集合。本文的list是用于代表列表的,实际上是列表名。尽管list可以存储不同数据类型的数据,但是大多数情况,都是存储相同的数据类型取值: list[ index ] 即可取到序号为 index 的数据data取索引: list.index(data)
类别 | 函数使用 | 解释说明 |
增加 | list.insert(index,data) | 指定位置插入数据 |
list.append(data) | 末尾添加数据 | |
list.extend(list2) | 将list2的数据添加到list后 | |
修改 | list[index]=data | 修改指定索引数据 |
删除 | del list[index] | 删除指定索引数据 |
list.remove[data] | 删除第一个出现的data数据 | |
list.pop | 删除末尾数据 | |
list.pop(index) | 删除指定索引数据 | |
list.clear | 清除列表 | |
统计 | len(list) | 统计列表长度 |
list.count(data) | 计算data在列表中出现次数 | |
排序 | list.sort() | 升序排序 |
list.sort(reverse=true) | 降序排序 | |
list.reverse() | 逆序、反转 |
Tips: 可以在命令行模式,输入"list名."再按tab,可以得到能使用的方法名,在pycharm中光标放到方法名再按ctrl可以看出需填参数关键字、函数和方法:关键字使用时不需要小括号,例如前文的del import keywordprint(keyword.kwlist) #可以查看python所提供的所有33个关键字函数封装了一些独立功能,可以直接调用,使用时需要小括号。函数名需要记住。方法和函数类似,也是封装了独立功能,但是方法需要通过对象来调用,是要对这个对象进行的操作。调用方法: 对象.方法名() #方法名不用记住元组元组与列表类似,用()表示,但是元组的元素不能修改,定义完成后就不能修改。两项之间用‘ ,’分隔,序号从0开始元组会用来存储不同的数据类型,因而对元组进行迭代循环的需求就不是很多空元组:empty_tuple = ()只含一个元素的元组: one_tuple = (1,) #必须添加一个逗号,若无的话就是int型取值: tuple[index]取索引: tuple.index(data)数据在元组中出现的次数: tuple.count(data)元组元素个数: len(tuple)元组应用场景:①格式化字符串中()即是一个元组,可以不用print直接用%连接字符串和元组②用于保存函数的参数和返回值③保护不能修改的列表元组和列表的转换: list(元组) / tuple(列表)字典【无序】的数据集合。本文的dict是用于代表字典的,实际上是字典名。字典用{}表示,每个数据项是一个键值对,用逗号分隔。键值对的格式是key:value。为了便于观看,最好可以一行放置一对键值对。取值:dict[ key ]增加/修改 : dict[ key ] = value2 #如果key不存在则新增项key:value2;如果存在则将原来的value值改为value2删除: dict.pop(key) 即可删除对应键值对
取值 |
dict[key] dict.get(key) |
取出字典中key对应的value值 |
增加/修改 |
dict[key]=value dict.setdefault(key,value) |
若key存在则是修改键值,若不存在则是增加项 |
删除项 | dict.pop(key) | 删除key对应的键值对 |
统计键值对数 | len(dict) | 统计键值项数 |
合并字典 | dict.update(dict2) | 合并两个字典,若有相同key,覆盖dict原有的项 |
清空字典 | dict.clear() | 清空所有键值对 |
查看key值 | dict.keys() | 查看key值列表,value同理 |
字典在迭代循环时,for item in dict: 中的item指的是键值对中的key
字典和列表的结合:list=[dict1,dict2]
字符串
“”或‘’定义。一般其他语言都用“”定义。若内容含有“”可以采用‘’;若内容含有‘’可以采用“”,也可以采用转义字符
可以利用索引取字符串中的某一字符,索引从0开始。迭代循环时,循环的项是字符串中的各个字符
len(str)查看str长度、str.count(lstr)统计子字符串出现次数、str.index(lstr)返回lstr在str中所处的位置索引
python为字符串提供了很多方法:①判断类型。例如是否只有数字,是否含有大小写等。②查找和替换。③大小写替换。④文本对齐。⑤去除空白字符。⑥字符串拆分和连接。
这些方法不再描述,使用时可以在命令行模式输入str.再按tab键,根据方法名进行利用即可。