[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5yYrpni6-1618656212448)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210415091101436.png)]
CPU:处理数据的 内存中:CPU要处理的数据 硬盘:永久存储数据的地方
简单易学 免费、开源 应用领域广泛:web开发、爬虫、数据分析、人工智能、机器学习、自动化测试、自动化运维
备注:知名框架
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0TfUd3Q0-1618656212451)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210415092224072.png)]
基于python3.5版本 课程以3.7版本讲解
下载网站:https://www.python.org/downloads/windows/
安装:傻瓜式安装
测试:按cmd+r,进入命令行操作,输入python,按回车键会显示版本号
注意点:如果安装多个版本的python,可对不同版本的python解释器进行重命名。例如python2(python2.X的版本)、python3(python3.X的版本)
是一种集成开发环境,功能:智能提示、语法高亮、代码跳转、调试代码、解释代码、框架和库... 下载社区版本
下载网站:https://www.jetbrains.com/pycharm/download/#section=windows
勾选:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VPGmwSDw-1618656212454)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210415101416067.png)]
新建项目:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fTXaO22A-1618656212460)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210415102633768.png)]
新建文件并书写代码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7TXwvdJ2-1618656212464)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210415103547132.png)]
运行文件
右击点击run
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-exRA1weY-1618656212465)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210415103629553.png)]
界面修改
代码样式修改
解释器修改
打开项目
单行注释
# 注释内容 print("hello world") # 简单注释 快捷键 CTRL+/
多行注释
""" 注释一 注释二 注释三 """ 或者 ''' 注释一 注释二 注释三 '''
注意:单行注释一般是对一行代码进行注释
多行注释一般是对多行代码或者对代码块进行注释
变量的定义:内存地址的名字
变量名 = 值 变量名自定义,要满足标识符命名规则
my_name = 'hello world' print(my_name)
数值类型:int float
布尔型 bool
字符串 str
列表 list
list1 = [10, 20, 30]
元组 tuple
tuple1 = (10, 20, 30)
集合 set
set = {10, 20, 30}
字典 dict
dict1 = {'name': '李白', 'age': 18}
注意:逗号和冒号后面都要加入空格
技巧:
格式:f’{表达式}'
注意:这是python3.6之后的版本才采用的
print('我的名字是%s,今年%d岁了' % (name, age)) 采用f表达式后是: print(f'我的名字是{name},今年{age}岁了')
print('hello')实际上是print('hello', end="\n"),默认自带end="\n"换行结束符 用户可以根据自己的需求进行更改
input("提示信息")
加减乘除:+ - * / 整除 // 取余 % 指数 ** 2**4=16 小括号 ()
等号 = 单变量赋值 num = 1 多变量赋值 num1, float1, str1 = 10, 0.5, 'hellowold' 多个变量赋相同的值 a = b = 10
加减乘除赋值运算符 +=、-=、*=、/= 整除赋值运算符 //= 取余赋值运算符 %= 幂赋值运算符 **= 注意点: d = 10 d *= 2 + 1 ---- 10*(2+1) 先算赋值运算符右边的表达式
== 判断相等 != 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于
and 与 or 或 not 非 拓展:数字之间的逻辑运算 and : 只要有一个值为0,否则结果为最后一个非0数字 0 and 9 and 7 结果为:0 9 and 8 and 6 结果为:6 or : 只有所有值为0,否则结果为第一个非0的数字 0 or 8 or 7 结果为: 8 8 or 1 结果为: 8
if条件: 条件成立执行的代码1 条件成立执行的代码2 。。。
if 条件: 条件成立要执行的代码 注意:条件成立要执行下方带缩进的代码 if True: print('条件成立执行的代码') age = int(input('请输入年龄:')) # 注意:age为字符串类型,要进行类型转换 if age >= 18: print('用户已成年可以上网')
if 条件1: 代码1 代码2 ... elif 条件2: 代码1 代码2 ... ... else: 以上条件都不成立执行的代码
age = int(input('请输入您的年龄:')) if age < 18: print('未成年不可以上网') elif (age >= 18) and (age <= 60): # 可化简成: 18 <= age <= 60 print('已成年可以上网') else: print('年龄太大不可以上网') print('系统关闭')
if 条件1: 代码1 代码2 if 条件2: 代码3 代码4
money = 1 seat = 1 if money == 1: print('您好,请上车') if seat == 1: print('坐着') else: print('站着') else: print('来,跟着后面跑吧')
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7XR53huL-1618656212469)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210415194111599.png)]
1、出拳 玩家:手动输入 电脑:1.固定:剪刀 2.随机 2、判断输赢 2.1 玩家获胜 2.2 平局 2.3 电脑获胜
import random print('提示(0--剪刀,1--石头,2--布)') player = int(input('玩家输入')) computer = random.randint(0, 2) if ((player == 0) and (computer == 2)) or ((player == 1) and (computer == 0)) or ((player == 2) and (computer == 1)): print('获胜') elif (): print('平局') else: print('电脑获胜')
条件成立执行的表达式 if 条件 else 条件不成立执行的表达式 a = 1 b = 2 c = a if a > b else b
while 条件: 代码1 代码2 .... 实例: i = 100 while i != 0: print('媳妇我错了') i -= 1
sum_i = 0 i = 0 while i <= 100: sum_i += i i += 1 print(f'100以内数字的和为{sum_i}')
# 方法一:计数器控制 i = 0 sum_i = 0 while i <= 100: sum_i += i i += 2 print(f'100以内偶数的累加和为{sum_i}') # 方法二:使用偶数判断条件 i = 0 sum_i = 0 while i <= 100: if i % 2 == 0: sum_i += i i += 1 print(f'100以内偶数的累加和为{sum_i}')
终止此循环
# 吃五个苹果,当吃完三个苹果后不吃了 i = 1 while i <= 5: print(f'吃了第{i}个苹果') i += 1 if i == 3: print('吃饱了,不吃了') break
退出当前一次循环继而执行下一次循环
# 吃五个苹果,当吃到第三个苹果迟到虫子就不吃了 i = 1 while i <= 5: if i == 3: print('吃到虫子了,不吃了') i += 1 #应注意计数器 continue print(f'吃了第{i}个苹果') i += 1
1、语法
while 条件1: 条件1成立执行的代码 ... while 条件2: 条件2成立执行的代码 ....
2、实例:
# 每天说五遍媳妇我错了,还要刷碗,并且要连续三天 day = 3 count = 5 # 外循环为天数 while day != 0: while count != 0: print('媳妇我错了') count -= 1 print('刷碗') count = 5 day -= 1 print('------------')
3、应用
# 打印正方形星号 count_row = 0 count_column = 0 while count_row < 5: while count_column < 5: print('*', end='') count_column += 1 count_column = 0 print() count_row += 1
# 打印三角形 count_row = 1 count_column = 0 while count_row < 6: while count_column < count_row: print('*', end='') count_column += 1 print() count_column = 0 count_row += 1
# 打印九九乘法表 count = 9 # 控制行数和列数 i = j = 1 # i和j用于记录 while i <= count: while j <= i: print(f'{i}*{j}={i*j}', end=' ') j += 1 print() j = 1 i += 1
for 临时变量 in 序列: # 是由多个数据组成的 重复执行的代码1 重复执行的代码2 ... str1 = 'python' for i in str1: print(i)
# break for i in str1: if i == 'h': print('遇到h不打印') break print(i) # continue for i in str1: if i == 'h': print('遇到h不打印') continue print(i)
name = 'abcde' print(name[0])
切片是指对操作对象截取其中一部分的操作。字符串、列表、元组都支持切片的操作
序列[开始位置下标:结束位置下标:步长] 注意: 1、区间是左闭右开 2、步长是选取间隔,正负整数均可,默认步长为1 3、步长可以不写,默认为1
str1 = '012345678' print(str1[2:5:1]) # 234 print(str1[2:5:2]) # 24 print(str1[2:5]) # 234 print(str1[:5]) # 01234 print(str1[2:]) # 2345678 print(str1[:]) # 012345678 # 负数测试 print(str1[::-1]) # 876543210 print(str1[-4:-1]) # 567 # 倒续输出采用的还是左闭右开的原则 # 终极测试 print(str1[-4:-1:1]) # 567 print(str1[-4:-1:-1]) # 不能选取数据:从-4开始到-1结束,选取方向为从左到右,但是-1步长:从右向左选取 # ***【重点】 如果选取方向(下标开始到结束的方向)和 步长的方向冲突,则无法选取数据 print(str[-1:-4:-1]) # 876
检测某个子串是否包含在这个字符串中,如果在则返回这个子串开始的位置下标,否则返回-1 语法: 字符串序列.find(字串, 开始位置的下标, 结束位置的下标) 注意:开始位置的下标和结束的下标都可以省略,表示在整个字符串序列中查找
检测某个子串是否包含在这个字符串中,如果在则返回这个字串开始的下标,否则报错 语法: 字符串序列.index(子串, 开始位置的下标, 结束位置的下标) 注意:开始位置的下标和结束位置的下标都可以省略
返回某个子串在字符串中出现的次数
替换字符串
语法:
字符串序列.replace(旧字符串, 新字符串, 替换次数) mystr = "hello world and itcast and itheima and Python" # 结果:hello world he itcast he itheima he Python print(mystr.replace('and', 'he')) # 结果:hello world he itcast he itheima he Python print(mystr.replace('and', 'he', 10)) # 结果:hello world and itcast and itheima and Python print(mystr)
注意:如果没有写替换次数,则默认全部替换。返回值为一个字符串类型
分割字符串
语法
字符串序列.split(分割字符, num) mystr = "hello world and itcast and itheima and Python" # 结果:['hello world ', ' itcast ', ' itheima ', ' Python'] print(mystr.split('and')) # 结果:['hello world ', ' itcast ', ' itheima and Python'] print(mystr.split('and', 2)) # 结果:['hello', 'world', 'and', 'itcast', 'and', 'itheima', 'and', 'Python'] print(mystr.split(' ')) # 结果:['hello', 'world', 'and itcast and itheima and Python'] print(mystr.split(' ', 2))
注意:num为分割的次数,即将来返回数据个数为num++。返回值类型为一个列表类型
合并字符串
语法
字符或子串.join(多字符串组成的序列) list1 = ['chuan', 'zhi', 'bo', 'ke'] t1 = ('aa', 'b', 'cc', 'ddd') # 结果:chuan_zhi_bo_ke print('_'.join(list1)) # 结果:aa...b...cc...ddd print('...'.join(t1))
capitalize():只有字符串第一个字符转换成大写,即使字符串中有其他大写也会转换成小写 title():将字符串每个单词首字母转换成大写 lower():将字符串中大写转换成小写 upper():将字符串中小写转大写
rstrip: 删除字符串右侧空白字符 lstrip: 删除字符串左侧空白字符 strip: 删除字符串两侧空白字符
ljust:左对齐 rjust:右对齐 center:中间对齐
startwith():检查字符串是否以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查
语法: 字符串序列.startwith(子串, 开始位置的下标, 结束位置的下标)
endwith():用法与startwith类似
isalpha():如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False
isdigit():如果字符串只包含数字则返回True否则返回False
isalnum():字符串为字母或者数字的组合
isspace():如果字符串都是空白则返回True,否则返回False
[数据1, 数据2, 数据3, ...]
列表可以一次性存储多个数据,且可以为不同数据类型
name_list = ['Tom', 'Lily', 'Rose'] print(name_list[0]) # Tom print(name_list[1]) # Lily
index():返回指定数据所在位置的下标
注意:如果查找的数据不存在则会报错
语法: 列表序列.index(数据, 开始位置下标, 结束位置下标) name_list = ['Tom', 'Lily', 'Rose'] print(name_list.index('Lily', 0, 2)) # 1
count():统计指定数据在当前列表中出现的次数
name_list = ['Tom', 'Lily', 'Rose'] print(name_list.count('Tom')) # 1 print(name_list.count('Toms')) # 0
len():访问列表长度,即列表中数据的个数
name_list = ['Tom', 'Lily', 'Rose'] print(name_list.len()) # 3
in:判断某个数据是否在列表中,如果在则返回一个True,不在则返回一个False
name_list = ['Tom', 'Lily', 'Rose'] isLily = 'Lily' in name_list print(isLily) # True
not in:判断指定数据不在某个列表序列中,如果不在则返回一个True,否则返回一个False
name_list = ['Tom', 'Lily', 'Rose'] isLily = 'Rose' not in name_list print(isLily) # False
体验案例
需求:查找用户输入的名字是否已经存在
name_list = ['Tom', 'Lily', 'Rose'] name = input('请输入一个名字') if name in name_list: print('您输入的名字已经存在') else: print('您输入的名字不存在')
append():列表结尾增加数据
语法: 列表序列.append(数据) name_list = ['Tom', 'Lily', 'Rose'] name_list.append('xiaoming') print(name_list) # ['Tom', 'Lily', 'Rose', 'xiaoming'] name_list.append(['xiaoming', 'xiaoming']) print(name_list) # ['Tom', 'Lily', 'Rose', 'xiaoming', ['xiaoming', 'xiaoming']] # 注意点:如果append追加的数据是一个序列,则追加整个序列到列表
extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
# 单个数据: name_list = ['Tom', 'Lily', 'Rose'] name_list.extend('xiaoming') print(name_list) # 结果:['Tom', 'Lily', 'Rose', 'x', 'i', 'a', 'o', 'm', 'i', 'n', 'g'] # 多个数据 name_list.extend(['xiaoming', 'xiaohong']) print(name_list) # 结果:['Tom', 'Lily', 'Rose', 'xiaoming', 'xiaohong']
insert():指定位置新增数据
语法: 列表.insert(位置下标, 数据) name_list = ['Tom', 'Lily', 'Rose'] name_list.insert(1, 'xiaoming') # 结果:['Tom', 'xiaoming', 'Lily', 'Rose'] print(name_list)
可以删除指定的数据 del name_list[0] 也可以删除列表 del name_list
pop():删除指定下标的数据(默认为最后一个),并返回该数据
语法: 列表序列.pop(下标) name_list = ['Tom', 'Lily', 'Rose'] del_name = name_list.pop(1) print(del_name) # Lily print(name_list) # ['Tom', 'Rose'] name_list = ['Tom', 'Lily', 'Rose'] del_name = name_list.pop() print(del_name) # Rose print(name_list) # ['Tom', 'Lily']
remove():移除列表中某个数据的第一个匹配项
语法: 列表序列.remove(数据) name_list = ['Tom', 'Lily', 'Rose'] name_list.remove('Rose') print(name_list) # [['Tom', 'Lily']
clear():清空列表
name_list = ['Tom', 'Lily', 'Rose'] name_list.clear() print(name_list) # 结果 []
name_list = ['Tom', 'Lily', 'Rose']
name_list.insert(1, ‘xiaoming’)
print(name_list)
#### 3、删除 1. del ```python 可以删除指定的数据 del name_list[0] 也可以删除列表 del name_list
pop():删除指定下标的数据(默认为最后一个),并返回该数据
语法: 列表序列.pop(下标) name_list = ['Tom', 'Lily', 'Rose'] del_name = name_list.pop(1) print(del_name) # Lily print(name_list) # ['Tom', 'Rose'] name_list = ['Tom', 'Lily', 'Rose'] del_name = name_list.pop() print(del_name) # Rose print(name_list) # ['Tom', 'Lily']
remove():移除列表中某个数据的第一个匹配项
语法: 列表序列.remove(数据) name_list = ['Tom', 'Lily', 'Rose'] name_list.remove('Rose') print(name_list) # [['Tom', 'Lily']
clear():清空列表
name_list = ['Tom', 'Lily', 'Rose'] name_list.clear() print(name_list) # 结果 []