Python(一) 基础二(语句、文件读写)

news2024/12/28 21:34:29

1.语句

1.1.if…elif…else

类似于java的if…else if…else语句

1.1.1.判断条件

比较运算符: ==、>、<、<=、>=、!=、is、is not、in、not in

1.1.2.==和is的区别

list_1 = ['aaa', 'bbb']
list_2 = ['aaa', 'bbb']
print(list_1 == list_2)
#结果:True
print(list_1 is list_2)
#结果:False

== 判断值是否是相同
is 判断两个对象是不是同一个对象

1.2.循环

1.2.1.while

a = 1
while a <= 10:
	print(a)
	a += 1

1.2.2.for

b = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in b:
    print(i)

#或者
for c in range(1, 10):
    print(c)

能使用for就尽量不要使用while

1.2.3.获取索引

d = ['a', 'b', 'c', 'd', 'e', 'f']
for index,j in enumerate(d):
    print(index, j)

1.2.4.while True…break

x = 1
while True:
	if x < 10:
		print(x)
	else:
		break
	x += 1

1.3.排序

print(sorted([4,3,5,7,1]))
#结果: [1, 3, 4, 5, 7]

按字母表排序, 区分大小写

print(sorted('AbDcPa'))
#结果:['A', 'D', 'P', 'a', 'b', 'c']

按字母表顺序, 且不区分大小写, 相同字母默认先大写后小写

print(sorted('AbDcPa', key=str.lower))
#结果:['A', 'a', 'b', 'c', 'D', 'P']

倒序函数

print(list(reversed('AbDcPa')))
#结果:['a', 'P', 'c', 'D', 'b', 'A']

1.4.eval

将字符串转为表达式, 并返回结果

print(eval('1 + 2 * 4 - 3'))
#结果:6

1.5.exec

将字符串转为代码, 并执行

exec("for i in range(10):\
    print(i)")
结果:
0
~
9

2.读写文件

2.1.csv

2.1.1.读取

import csv
with open('test_reader.csv', 'r') as csvfile:
    spamreader = csv.reader(csvfile)
    for row in spamreader:
        print(','.join(row))

2.1.2.写入

with open('test_writer.csv', 'w') as csvfile:
    spamwriter = csv.writer(csvfile)
    for row in range(10):
        spamwriter.writerow(['key-' + str(row),'value-' + str(row),'comment-' + str(row)])

2.2.config

读取类似.config、.properties文件

2.2.1.读取

文件名称:test_conf.config, 文件内容:

[user]
name=fracong
[server]
ip=127.0.0.1

代码:

from configparser import ConfigParser
parser = ConfigParser()
parser.read('test_conf.config')
print(parser.get('user', 'name'))
print(parser.get('server', 'ip'))
#结果:
fracong
127.0.0.1

2.2.2.写入

from configparser import ConfigParser
config = ConfigParser()
config['user'] = {
    'name': 'fracong',
    'age': 33
}
with open('test_conf2.config', 'w') as configfile:
    config.write(configfile)

输出内容:

[user]
name = fracong
age = 33

2.3.xml

2.3.1.ElementTree

2.3.1.1.读取

文件名称:read_xml.xm, 文件内容

<root version="1.1">
	<name>fracong</name>
</root>

读取代码

import xml.etree.ElementTree as ET
tree = ET.parse('read_xml.xml')
root = tree.getroot()
print(root.tag)
print(root.attrib['version'])
for elem in list(root):
    print(elem.tag)

#结果:
root
1.1
name

2.3.1.2.写入

import xml.etree.ElementTree as ET
root_write = ET.Element("root")
root_write.set("version", "1.2")
name_elem = ET.SubElement(root_write, "name", test="true")
name_elem.text='fracong'
tree_write = ET.ElementTree(root_write)
tree_write.write('write_xml.xml')

结果

<root version="1.2"><name test="true">fracong</name></root>

2.3.2.minidom

2.3.2.1.读取

文件名称:read_xml.xm, 文件内容

<root version="1.1">
	<name>fracong</name>
</root>

读写代码

from xml.dom import minidom
read_file_1 = minidom.parse('read_xml.xml')
read_root_1 = read_file_1.getElementsByTagName('root')[0]
for it in read_root_1.attributes.values():
    print(it.name, it.value)

2.3.2.2.写入

from xml.dom import minidom

doc = minidom.Document()
root = doc.createElement('root')
root.setAttribute("version", "1.2")
doc.appendChild(root)

name = doc.createElement('name')
name.setAttribute("test", "true")
fracong_text = doc.createTextNode("fracong")
name.appendChild(fracong_text)
root.appendChild(name)
xml_str = doc.toprettyxml(indent ="\t") # 格式化
#或者使用doc.toxml() 非格式化
#xml_str = doc.toxml()
with open('write_xml2.xml', 'w') as xmlfile:
    xmlfile.write(xml_str)

结果:

<?xml version="1.0" ?>
<root version="1.2">
	<name test="true">fracong</name>
</root>

2.4.parquet

说明: parquet文件一般用于大数据
前提: 安装pandas

pip3 install pandas

2.4.1.写入

import pandas as pd
field_list = ["Name","Age","Content"]
data_1 = ["fracong","33","xxx.xxx"]
data_2 = ["fracong2","32","xxx.xxx1"]
data_list = []
data_list.append(data_1)
data_list.append(data_2)
df = pd.DataFrame(data_list, columns = field_list)
path = 'test.parquet'
df.to_parquet(path)

DataFrame的第一个是数据, 第二个参数是字段名

2.4.2.读取

import pandas as pd
path = 'test.parquet'
df = pd.read_parquet(path)
print(df)

结果:

       Name Age   Content
0   fracong  33   xxx.xxx
1  fracong2  32  xxx.xxx1

2.5.excel

安装pandas和openpyxl

pip3 install pandas
pip install openpyxl

2.5.1.使用pandas

2.5.1.1.写入

import pandas as pd
field_list = ["Name","Age","Content"]
data_1 = ["fracong","33","xxx.xxx"]
data_2 = ["fracong2","32","xxx.xxx1"]
data_list = []
data_list.append(data_1)
data_list.append(data_2)
df = pd.DataFrame(data_list, columns = field_list)
df.to_excel('test.xlsx')

结果:
在这里插入图片描述

2.5.1.2.读取

import pandas as pd
workbook = pd.read_excel('test.xlsx', sheet_name=0)
print(workbook)
print('--------##--------------')
print(workbook['Name'].iloc[0])

结果:
Unnamed: 0 Name Age Content
0 0 fracong 33 xxx.xxx
1 1 fracong2 32 xxx.xxx1
--------##--------------
fracong

2.5.2.使用openpyxl

2.5.2.1.写入

import openpyxl
workbook = openpyxl.Workbook()
sheet1 = workbook.create_sheet("Test1", index=0)
row0 = ['L0', 'L1', 'L2', 'L3', 'L4']

for i in range(1, 10):
    for j in range(1, len(row0)):
        if i == 1:
            sheet1.cell(row=i, column=j).value = row0[j]
        else:
            sheet1.cell(row=i, column=j).value = i
path2 = "test2.xlsx"
workbook.save(path2)

行和列都是从1开始的
结果:
在这里插入图片描述

2.5.2.2.读取

path2 = "test2.xlsx"
wb_obj = openpyxl.load_workbook(path2)
sheet_obj = wb_obj.active
cell_obj = sheet_obj.cell(row = 1, column = 1)
print(cell_obj.value)

结果:

L1

2.5.3.使用XlsxWriter写入

安装

pip install XlsxWriter

写入

import xlsxwriter
workbook2 = xlsxwriter.Workbook('test3.xlsx')
worksheet2 = workbook2.add_worksheet()
row0 = ['L0', 'L1', 'L2', 'L3', 'L4']

for i in range(10):
    for j in range(len(row0)):
        if i == 0:
            worksheet2.write(i, j, row0[j])
        else:
            worksheet2.write(i, j, i)
workbook2.close()

结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/484785.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

async await

async await async await 都是修饰符&#xff0c;修饰函数的。 async/await一定是成对出现的。比如用async也没有什么太大意义。只要函数体中出现了await&#xff0c;则当前函数必须用async来修饰。 用async修饰的函数&#xff0c;相当于用promise包裹起来。其实相当于把同步修…

基于jeecgboot的OA日程安排开发(一)

日程安排也是OA里的一项重要功能&#xff0c;所以基于jeecgboot开发这个日程安排。 日程安排主要涉及以下几个方面&#xff1a; 1、数据库方面&#xff0c;主要是分日历与日程 日历可以分个人日历与工作日历&#xff0c;一般情况下&#xff0c;个人日历只给自己查看&#xff0…

2023-05-02 动态规划简介

动态规划简介 1 动态规划的基本概念 阶段、状态、决策、策略、状态转移方程 1) 阶段和阶段变量 将问题的全过程恰当地分成若干个相互联系的阶段闫氏DP分析法&#xff1a;对应f[i][j]的ij遍历时形成的所有f[i][j]阶段的划分一般根据时间和空间的自然特征去划分阶段的划分便于把…

Nginx原理解析

master和worker 当linux启动的时候&#xff0c;会有两个和nginx相关的进程&#xff0c;一个是master,一个是worker。 master如何工作 当客户端发送请求到nginx之后&#xff0c;master会接收到这个请求&#xff0c;然后通知所有的worker进程&#xff0c;此时&#xff0c;work…

【STL十六】函数对象:包装器(std::function)——绑定器(std::bind)——函数适配器

【STL十六】函数对象&#xff1a;包装器(std::function&#xff09;——绑定器&#xff08;std::bind&#xff09;——函数适配器 一、包装器(std::function&#xff09;1、简介2、头文件3、构造函数4、demo5、异常 二、绑定器&#xff08;std::bind&#xff09;1、简介2、头文…

Nessus漏洞扫描以及OpenSSH漏洞修复验证

主机IP地址资源kali192.168.200.1285GB内存/4CPUCentOS7.5192.168.200.1292GB内存/2CPU https://www.tenable.com/downloads/nessus?loginAttemptedtrue curl --request GET \--url https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.5.1-ubuntu1404_am…

云原生Istio案例实战

目录 1 Istio监控功能1.1 prometheus和grafana1.2 访问prometheus1.3 访问grafana 2 项目案例&#xff1a;bookinfo2.1 理解什么是bookinfo2.2 sidecar自动注入到微服务2.3 启动bookinfo2.4 通过ingress方式访问2.5 通过istio的ingressgateway访问2.5.1 确定 Ingress 的 IP 和端…

计算机视觉--图像拼接

图像拼接 单应性变换仿射变换图像扭曲实现图像嵌入&#xff08;图中图&#xff09; RANSAC算法算法介绍图片收集无RANSAC优化和有RANSAC优化的代码实现差别 总结 单应性变换 单应性变换是指一个平面上的点通过一个矩阵变换映射到另一个平面上的点&#xff0c;这个变换矩阵是一…

java聊天室的设计与实现代码

聊天室是一个简单的通信应用&#xff0c;可以帮助您与客户和朋友保持联系&#xff0c;并且可以让您更轻松地与其他员工联系。然而&#xff0c;您将不得不确保每个人都知道他们正在做什么。 一旦聊天室开始&#xff0c;它就会变得非常复杂&#xff0c;因为有许多用户可能会同时登…

【三十天精通Vue 3】第二十五天 Vue3 与 Axios 后端数据交互

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: 三十天精通 Vue 3 文章目录 引言一、Vue3 与 Axios 概述二、Axios 安装与基本使用2.1 安装 Ax…

NECCS|全国大学生英语竞赛C类|词汇和语法|语法题|时态|22:30~11:44

15题 10min 10:20&#xff5e;10:25 test2 10:25&#xff5e;10:47 test1订正 10:44&#xff5e;11:47 理论学习 涉及的语法点主要包括&#xff1a; 动词的时态和语态 非谓语动词 虚拟语气 主谓一致 倒装句 强调句 比较级 名词性从句 定语…

【SQL篇】面试篇之子查询

1303 求团队人数 # 写法1 # Write your MySQL query statement below select employee_id, count(*) over(partition by team_id) as team_size from Employee# 写法2 # Write your MySQL query statement below select employee_id, team_size from Employee e join (select t…

优雅编程,从空格、空行、缩进、注释开始

很多初学者的代码其实都不够“漂亮”&#xff0c;那是因为没有养成好的编码习惯。本篇博客以C语言为例&#xff0c;总结一些好习惯。其实&#xff0c;很多习惯都是肌肉记忆&#xff0c;举个例子&#xff1a;请你写一个程序&#xff0c;输入2个整数并输出它们的和。有些朋友可能…

springboot+vue前后端分离项目打包成jar包及运行

将 Spring Boot 和 Vue.js 项目打包成 jar 包需要按照以下步骤操作&#xff1a; 在项目的根目录中&#xff0c;使用命令行进入 Vue.js 项目的根目录&#xff0c;然后运行以下命令&#xff1a; npm run build这个命令将会构建 Vue.js 项目&#xff0c;并在项目的 dist 目录中生…

Rust-Rocket框架笔记

Rust-Rocket框架笔记 Rocket-Learn-docRocket Addr视频地址 What is RocketQuickStart下载Rocket-Rust运行Rust-Rocket-Hello-错误-端口占用解决查看端口占用情况添加Rocket.toml配置文件更改Rocket默认启动端口启动成功 GetStart-Hello world创建项目cargoIDEA 添加依赖添加Ro…

使用eclipse创建一个图书管理系统(2)---------逻辑的实现

就像使用C语言写代码一样。比如要用​​​​​​C语言写一个小游戏的代码&#xff0c;我们的逻辑实现是在哪里实现的啊&#xff1f;是不是在一个test.c源文件里面啊&#xff1f;没错&#xff0c;就是的&#xff01;在之前的文章里&#xff0c;我说过我定义的Main函数就像C语言里…

【《中国工业经济》数据复现】数字化转型与企业分工:专业化还是纵向一体化

一.研究内容 本文使用机器学习方法刻画微观企业数字化水平&#xff0c;并在构建数理模型的基础上实证考察了企业数字化转型对企业分工的影响及其机理。结果表明&#xff0c;企业数字化转型显著提升了中国上市企业专业化分工水平。机制分析表明&#xff0c;数字化转型对企业专业…

实现chatgpt自然对话

1.概述 ChatGPT是当前自然语言处理领域的重要进展之一&#xff0c;通过预训练和微调的方式&#xff0c;ChatGPT可以生成高质量的文本&#xff0c;可应用于多种场景&#xff0c;如智能客服、聊天机器人、语音助手等。本文将详细介绍ChatGPT的原理、实战演练和流程图&#xff0c…

C/C++每日一练(20230503)

目录 1. 输出最长的递增数字字符串 &#x1f31f;&#x1f31f; 2. 缺失的第一个正数 &#x1f31f;&#x1f31f;&#x1f31f; 3. 最大矩形 &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日…

SaaS模医学检验信息管理系统源码,系统预设几十种报告模板,可在几分钟内批量生成报告

实验室信息管理系统云LIS源码 SaaS模式运维管理系统 云LIS系统源码是一款全面的实验室信息管理系统源码&#xff0c;其主要功能包括样本管理、检测项目管理、质控管理、报告管理、数据分析、两癌筛查等多个方面。具有独立的配套SaaS模式运维管理系统&#xff0c;支持远程运维&…