Python 整理(更新中)
一、环境搭建
1- 下载python解析器
下载地址:https://www.python.org/
2- 安装解析器:
3.pycharm 安装操作
1- 下载pycharm
下载地址: https://www.jetbrains.com/pycharm/
pycharm开发第一个Python程序
在这里插入图片描述
# 第一个Python 程序
print("Heoll Word")
二、Python基础语法
2.1注释
1.单行注释: 以#开头,#右边的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用
2.多行注释
“”“内容”“”, 三个引号引起来的内容作为对代码的解释说明, 这里的解释往往比较详尽,行数较多(三个单引号或者三个双引号都可以)
# 我是注释,可以在里写一些功能说明之类的哦
print('hello world')
'''
我是多行注释,可以写很多很多行的功能说明
下面的代码完成 ,打印一首诗
名字叫做:春江花月夜
'''
str="""
春江花月夜
张若虚
春江潮水连海平,海上明月共潮生。
滟滟随波千万里,何处春江无月明!
江流宛转绕芳甸,月照花林皆似霰。
空里流霜不觉飞,汀上白沙看不见。
江天一色无纤尘,皎皎空中孤月轮。
江畔何人初见月?江月何年初照人?
人生代代无穷已,江月年年望相似。
不知江月待何人,但见长江送流水。
白云一片去悠悠,青枫浦上不胜愁。
谁家今夜扁舟子?何处相思明月楼?
可怜楼上月徘徊,应照离人妆镜台。
玉户帘中卷不去,捣衣砧上拂还来。
此时相望不相闻,愿逐月华流照君。
鸿雁长飞光不度,鱼龙潜跃水成文。
昨夜闲潭梦落花,可怜春半不还家。
江水流春去欲尽,江潭落月复西斜。
斜月沉沉藏海雾,碣石潇湘无限路。
不知乘月几人归,落月摇情满江树。
"""
print(str)
2.3定义变量
变量定义
格式: 变量名=值
num1 = 100
num2 = 87
result = num1 + num2
print(result)
# 定义一个数字类型变量num
num = 10
# 这里使用type就可以查看num的具体类型
print(type(num))
2.4 输出操作(print)
输出函数print的使用
print('hello world')
print('你好')
age=10
print("你的年龄是%d岁"% age)
age = 11
print("我今年%d岁" % age)
age = 12
print("我今年%d岁" % age)
age = 18
name = "sx"
print("我的姓名是%s, 年龄是%d" % (name, age))
name = 'pxj'
age = 33
print(f'你的名字是{name},年龄是{age}')
2.5输入操作
input() 函数
name=input("请输入你的名字:\n")
print(name)
2.6运算符
2.7.赋值运算符
# 单个变量赋值
num = 10
print(num)
# 多个变量赋值
num1, num2, f1, str1 = 100, 200, 3.14, "hello"
print(num1, num2, f1, str1)
2.8复核运算符
2.9常用数据类型转换
在程序中往往会出现需要数据类型转化的需求
例如:
input()函数默认接受到的是str(字符串)数据类型数据, 而我们需要input()函数给我们一个数字类型的数据. 这时候我们就可以把接受到的数据进行数据类型转化.
str1="abc"
int1=123
float1=123.123
bool1=True
print(type(int1))
print(type(float1))
print(type(bool1))
#3 转换数据类型
print("----------------")
print(int(float1))
print(type(int(float1)))
三、判断语句和循环语句
if语句是用来进行判断的,其使用格式如下:
if 要判断的条件:
条件成立时,要做的事情
age=input("请输入年龄")
if int(age)>=18:
print("已成年")
else :
print("没成年")
ticket = 1 # 用1代表有车票,0代表没有车票
if ticket == 1:
print("有车票,可以上火车")
print("终于可以见到Ta了,美滋滋")
else:
print("没有车票,不能上车")
score = 77
if score>=90 and score<=100:
print('本次考试,等级为A')
elif score>=80 and score<90:
print('本次考试,等级为B')
elif score>=70 and score<80:
print('本次考试,等级为C')
elif score>=60 and score<70:
print('本次考试,等级为D')
else:
print('本次考试,等级为E')
四、目计算
python本身并不支持三目(三元)计算, 但是我们可以通过 if else 变形来解决
a=int(input("请输入第一个数字"))
b=int(input("请输入第二个数字"))
result=a-b if a>b else b-a
print(result)
五、猜拳游戏
import random
"""
需求:
1. 输⼊要出的拳 —— ⽯头(1)/剪⼑(2)/布(3)
2. 电脑 随机 出拳 —— 先假定电脑只会出⽯头,完成整体代码功能
3. ⽐较胜负
"""
# 1) 输⼊要出的拳 —— ⽯头(1)/剪⼑(2)/布(3)
player_user = int(input("请输入: ⽯头(1)/剪⼑(2)/布(3):"))
# 2)电脑随机出拳:
# 随机产生 一个 1~3之间的数字: 1 或者 2 或者 3
player_pc = random.randint(1,3)
# 3) 比较操作:
if player_user == player_pc:
print("平局......")
elif ((player_user == 1) and (player_pc == 2)) or ((player_user ==2) and (player_pc == 3)) or ((player_user == 3) and (player_pc == 1)):
print("我赢了")
else:
print("我输了")
六、循环语句
6.1while 循环
i = 1
sum = 0
while i <= 100:
sum = sum + i
i += 1
print("1~100的累加和为:%d" % sum)
6.2for 循环
name = 'pxj'
for x in name:
print(x)
6.3break 和 continue
break作用: 立刻结束break所在的循环
for x in name:
print('----')
if x == 'e':
break
print(x)
else:
print("==for循环过程中,如果没有执行break退出,则执行本语句==")
while i < 5:
i = i + 1
print('----')
if i == 3:
continue
print(i)
七、容器
容器:容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用各种内置方法对容器中的数据进行增删改查等操作
Python中常见容器有如下几种:
字符串
列表
元组
字典
7.1 字符串
b = “hello itcast.cn”
或者
b = ‘hello itcast.cn’
注意:
双引号或者单引号中的数据,就是字符串
a = "hello pjx.cn"
b = 'hello pxj.cn'
print(a)
print(b)
7.2字符串遍历
name = 'abcdef'
print(name[0])
print(name[1])
print(name[2])
字符串的切片
切片是指对操作的对象截取其中一部分的操作.
切片的语法:[起始:结束:步长]
注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔的长度
name = 'abcdef'
print(name[0:3]) # 取 下标0~2 的字符
name = 'abcdef'
print(name[3:5]) # 取 下标为3、4 的字符
name = 'abcdef'
print(name[2:]) # 取 下标为2开始到最后的字符
name = 'abcdef'
print(name[1:-1]) # 取 下标为1开始 到 最后第2个 之间的字符
7.3字符串常见操作
查找: find() index()
语法:
find(): 字符串序列.find(子串, 开始位置下标, 结束位置下标)
index():检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。
mystr = "hello world and flink and spark Python"
print(mystr.find('and')) # 12
print(mystr.find('and', 15, 30)) # 23
print(mystr.find('ands')) # -1
print(mystr.index('and')) # 12
print(mystr.index('and', 15, 30)) # 22
print(mystr.index('ands')) # 报错
修改–replace(),split()
格式:
replace(): 字符串序列.replace(旧子串, 新子串, 替换次数)
split(): 字符串序列.split(分割字符, num)
注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。
mystr = “hello world and flink and spark and Python”
# 结果:hello world he flink he spark he Python
print(mystr.replace('and', 'he'))
# 结果:hello world he flink he spark he Python
print(mystr.replace('and', 'he', 10))
# 结果:hello world and flink and spark and Python
print(mystr)
# 结果:['hello world ', ' flink ', ' spark ', ' Python']
print(mystr.split('and'))
# 结果:['hello world ', ' flink ', ' spark and Python']
print(mystr.split('and', 2))
# 结果:['hello', 'world', 'and', 'flink', 'and', 'spark', 'and', 'Python']
print(mystr.split(' '))
# 结果:['hello', 'world', 'and flink and spark and Python']
print(mystr.split(' ', 2))
7.3列表
定义格式: namesList = [值1,值2,值3]
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
print(namesList[0])
print(namesList[1])
print(namesList[2])
for遍历
names_list = ['xiaoWang','xiaoZhang','xiaoHua']
for name in names_list:
print(name)
while 循环
length = len(names_list)
i = 0
while i < length:
print(names_list[i])
i += 1
列表相关的API:
列表相关的API:
添加元素:
append: 通过append可以向列表添加元素
#定义变量A,默认有3个元素
A = ['xiaoWang','xiaoZhang','xiaoHua']
print("-----添加之前,列表A的数据-----")
for temp_name in A:
print(temp_name)
#提示、并添加元素
temp = input('请输入要添加的学生姓名:')
A.append(temp)
print("-----添加之后,列表A的数据-----")
for temp_name in A:
print(temp_name)
extend: 通过extend可以将另一个集合中的元素逐一添加到列表中
a = [1, 2]
b = [3, 4]
a.append(b)
print(a)
7.4 元组
元组特点:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
注意:如果定义的元组只有一个数据,那么这个数据后面也好添加逗号,否则数据类型为唯一的这个数据的数据类型
# 多个数据元组
t1 = (10, 20, 30)
# 单个数据元组
t2 = (10,)
print(t1,t2)
print("-------------------------------------")
元组的常见操作:
元组数据不支持修改,只支持查找,具体如下:
7.41 按下标查找数据
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0])
7.42 index()
index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.index("aa"))
7.43count():统计某个数据在当前元组出现的次数。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count("cc"))
7.44 len():统计元组中数据的个数。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1)) # 4
7.45注意:元组内的直接数据如果修改则立即报错
#tuple1 = ('aa', 'bb', 'cc', 'bb')
#tuple1[0] = 'aaa'
标题7.46但是如果元组里面有列表,修改列表里面的数据则是支持的,故自觉很重要。
tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
print(tuple2[2]) # 访问到列表
# 结果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)
tuple2[2][0] = 'aaaaa'
print(tuple2)
['aa', 'bb', 'cc']
(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)
7.5字典
类似于Java中Map
说明:
字典和列表一样,也能够存储多个数据
列表中找某个元素时,是根据下标进行的
字典中找某个元素时,是根据’名字’(就是冒号:前面的那个值,例如上面代码中的’name’、‘id’、‘sex’)
字典的每个元素由2部分组成,键:值。例如 ‘name’:‘班长’ ,'name’为键,'班长’为值
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
print(info['name'])
print(info['address'])
常见的操作:
7.5.1查看元素
除了使用key查找数据,还可以使用get来获取数据
info = {'name':'pxj','age':18}
print(info['age']) # 获取年龄
# print(info['sex']) # 获取不存在的key,会发生异常
print(info.get('sex')) #
7.5.2.修改元素
字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改
info = {'name':'pxj','age':18}
name1=input("请输入名字")
info["name"]=name1
print(info['name'])
7.5.3添加元素
如果在使用 变量名[‘键’] = 数据时,这个“键”在字典中,不存在,那么就会新增这个元素
info = {'name': 'zx', 'sex': 'f', 'address': '地球亚洲中国北京'}
ID=input("请输入ID")
info['ID']=ID
print(info.get("ID"))
7.5.4.删除元素
删除元素
对字典进行删除操作,有一下几种:
del
clear()
info1 = {'name':'pxj', 'sex':'f', 'address':'gz'}
print('删除前,%s' % info1)
del info1
print('删除后,%s' % info1)
print('清空前,%s' % info1)
info1.clear()
print('清空后,%s' % info1)
7.5.5 其他的一些操作
get()
语法
字典序列.get(key, 默认值)
注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。
快速体验
dict1 = {'name': 'pxj', 'age': 18, 'gender': '女'}
print(dict1.get('name'))
keys()
显示所有的key值
dict1 = {'name': 'pxj', 'age': 18, 'gender': '女'}
print(dict1.keys())
values()
显示所有的value值
dict1 = {'name': 'pxj', 'age': 18, 'gender': '女'}
print(dict1.values())
items()
显示所有的键值对(key-value形式)
dict1 = {'name': 'pxj', 'age': 18, 'gender': '女'}
print(dict1.items())
dict_items([('name', 'pxj'), ('age', 18), ('gender', '女')])
声明:部分整理参考了网上资料
作者:潘陈(pxj_shenx)
日期:2023-10-05 00:12:30