python

# 不需要定义变量
#
# while循环:
#     while 条件 :
#         xxx
#         xxx
# for 循环:
#     for 临时变量 in 范围容器(可用range,如果是容器的话,就是遍历,如果in 10,就是遍历0-10)
#     for循环的范围是大于等于第一个小于最后一个,也就是 int i=0;i<n;i++
# 输入 insert
# py里的数组就是c++中的vector,然后有函数操作,和c++中差不多,insert,pop,remove(remove(x)是删除元素中第一个是x的项),index(等于c++中的find)
# 字符串任意形式都可以
# 数组中[-1]是倒数第一个数
# my_str="woshinidie"
# value=my_str.index("die")
# print(f"现在是{my_str},下标是{value}")
# new_my_str=my_str.replace("die","er")
# print(f"现在是{new_my_str}")

# 字符串的分割
my_str="wo shi yi ge leng mo de ren"
me_list=my_str.split(" ")
print(f"一开始是{my_str},切分之后是{me_list}")

# strip(只能是前后的)
my_str=" ni hao  "
new_str=my_str.strip()
print(f"原来的:{my_str},去除前后空格的换行符的:{new_str}")
me_str="12 wo shi 12 whr 21"
new_sstr=me_str.strip("12")
# strip之后跟的是去除的字符串
print(f"原来的:{me_str},去除前后空格的换行符的:{new_sstr}")
my_str="wo shi wang harodashkljdlkjhas"
print(my_str.count(("a")))

# 切片
my_list=[0,1,4,6,123,121,22]
res1=my_list[1:4] #从一到四
print(f"结果一:{res1}")
res2=my_list[:] #从起始到结尾可以不写,如果是一也可以不写
print(f"结果二:{res2}")
res3=my_list[:2]
print(f"结果三:{res3}")

# 集合使用{} 就是c++中的set
# 集合不支持下标索引,支持修改
my_set={"我是王浩然","我是张晗","你是傻逼","我是王浩然","我是王浩然","我是张晗"}
set_empty=set()
print(f"set:{my_set},empty:{set_empty}")

# 添加新元素
my_set.add("我是你爹")
print(my_set)
# 移除元素
my_set.remove("我是你爹")
print(my_set)
#取元素,随机取出一个
print(my_set.pop())
#清空集合
my_set.clear()
#取两个集合的差集,消除差集
str1={1,2,3,4}
str2={8,1,9,0,4,3}
str3=str2.difference(str1)
print(str3)
str2.difference_update(str1)
print(str2)
#合并
str1={1,2,2,3,7,9}
str2={9,8,7}
print(str1.union(str2))
#统计集合元素数量
print(len(str2))

 

# 字典
# 使用大括号
# 也就是map,  " "对应" "
my_key = {"王浩然": 18, "张晗": 77, "ekko": 90}
key_empty1 = {}
key_empty2 = dict()
print(my_key)
# 获取对应的key
print(my_key["王浩然"])
# 定义嵌套字典:
stu_score = {
    "王浩然": {
        "语文": 88, "数学": 90
    },
    "你是": {
        "语文": 99, "数学": 78
    },
    "我是": {
        "语文": 56, "数学": 12
    }
}
print(stu_score)
# 获取key
print(stu_score["王浩然"]["数学"])
# 增加元素
my_key["于子涵"]=66
print(my_key)
#删除元素
print(my_key.pop("于子涵"))
print(my_key)
#获取全部的key
print(my_key.keys())
#遍历字典
for p in my_key.keys():
    print(f"字典的主体:{p}")
    print(f"字典的key:{my_key[p]}")
for p in my_key:
    print(f"字典的主体:{p}")
    print(f"字典的key:{my_key[p]}")

 

#字符串的大小比较,直接比较,系统返回 1或0
print(f"abc>acb,结果是:{'abc'>'acb'}")

n1=input()
n2=input()
print(f"输入的两个数是:{n1},{n2},比较的结果是{n1>n2}")

 

# 函数

def dayin(name, age, tall):
    print(f"姓名:{name},年龄:{age},身高:{tall}")
dayin('wanghaoran', '18', '180')
# 不定长传参
# 第一种:  *,函数内部可以接收无限个数据,并保存在一个元组里面
def use_info(*vis):
    print(vis)
use_info('TMO')
use_info('tmp', '10', '111')
# 第二种:  **  关键字不定长

def use2_info(**vis):
    print(vis)
use2_info(name='tmo',age='18',tall='180')

 

# 文件操作:
# 打开文件: open函数
# open(name,mode,encoding)(名字,模式,编码格式)
# 分为三个模式: r模式:以只读的方式打开,默认模式
# w模式:只用于写入,如果文件存在则打开,从头开始编辑,原有内容会被删除,如果文件不存在,就创建一个新文件夹
# a模式:用于追加,新的内容将会写到原有的内容之后,如果文件不存在,创建新文件追加写入内容
f = open('c:\测试.txt', "r", encoding="UTF-8")
print(type(f))
# 读写文件: 读取操作
#read
print(f.read(2))#读6个
#print(f.read())#读全部
#readline()读取一行内容
#readlines()读取全部行
lines=f.readlines()
print(lines)
# for循环读取,每一行
for line in f:
    print(line)
# 关闭文件
f.close()#关闭
#自动关闭文件的操作
with open('c:\测试.txt', "r", encoding="UTF-8") as f:
    for line in f
        print(f"每一行是:{line}")

 

# 文件操作:
# 打开文件: open函数
# open(name,mode,encoding)(名字,模式,编码格式)
# 分为三个模式: r模式:以只读的方式打开,默认模式
# w模式:只用于写入,如果文件存在则打开,从头开始编辑,原有内容会被删除,如果文件不存在,就创建一个新文件夹
# a模式:用于追加,新的内容将会写到原有的内容之后,如果文件不存在,创建新文件追加写入内容
f = open('c:\测试.txt', "r", encoding="UTF-8")
print(type(f))
# 读写文件: 读取操作
# read
print(f.read(2))  # 读6个
# print(f.read())#读全部
# readline()读取一行内容
# readlines()读取全部行
lines = f.readlines()
print(lines)
# # for循环读取,每一行
for line in f:
    print(line)
# # 关闭文件
# f.close()#关闭
# 自动关闭文件的操作
with open('c:\测试.txt', "r", encoding="UTF-8") as f:
    for line in f:
        print(f"这一行是:{line}")
# 统计次数
content = f.read()
cnt = content.count("ao")
print(f"ao出现了{cnt}次")
# 2:
print(f.read().count("ao"))

 

# 模块
#导入
import time
print("nihao")
time.sleep(5)
print("wphao")
from time import sleep #只使用一个函数
#改名
import time as t
print("nihao")
t.sleep(2)
print("cfuck")

 

#自定义模块
import my_model
my_model.test(1,2)
__name__=='__main__'
__all__=[xxxxx]

 

# python与json数据互相转换
import json

# py->json
data = [{"name": "王浩然", "age": 11}, {"name": "张晗", "age": 18}, {"name": "尼玛", "age": 19}]
json_str = json.dumps(data, ensure_ascii=False)  # 如果字典里有中文,需要加上ensure ascii
print(type(json_str))
print(json_str)
d = {"name": "王浩然", "addr": "巨野"}
print(json.dumps(d, ensure_ascii=False))

# json->py,将json字符串转化为py数据类型
s = '[{"name": "王浩然", "age": 11}, {"name": "张晗", "age": 18}, {"name": "尼玛", "age": 19}]'
print(json.loads(s))
ss = '{"name":"王浩然","addr":"巨野"}'
print(json.loads(ss))

 

posted @ 2023-07-17 18:26  o-Sakurajimamai-o  阅读(29)  评论(0)    收藏  举报
-- --