【Python】Python语言基础(下)

news2024/11/29 13:40:35


目录

第十一章 控制结构

for语句

if语句

while语句

第十二章 函数

函数介绍

函数的定义

函数的调用

函数的传参

函数的传参方式

位置实参

关键字实参

默认值实参

函数的返回值

函数传递未知数量的实参

函数的模块调用

调用整个模块

调用模块中特定功能

第十三章 类(选修)

类相关术语介绍

对象

实例化

类的定义

类中的方法

初始化方法

定义类中的属性值

修改类中的属性值

第十四章 文件的操作

文件操作前言

文件的打开方式

文件的操作

文件的读取

两种读取方式

文件的写入

w操作写入

a操作写入

文件的复制

文件的管理

管理文件模块

删除文件

创建文件夹

重命名文件夹

删除文件夹

获取程序当前的工作目录

列出当前目录下有哪些文件

更改工作目录

判断一个对象是文件还是文件夹

第十五章 异常的处理

异常的概念

异常处理的语法

病态代码


第十一章 控制结构

for语句

for i in (集合):
    循环体代码1
    循环体代码2
    循环体代码n
else:
    循环完执行的代码1

for i in range(0, 10):
    print(i)
else:
    print("循环执行完成")
----------------------------
0
1
2
3
4
5
6
7
8
9
循环执行完成

if语句

 if的语法格式:
    if 条件测试:
        条件测试满足条件时执行的代码1
        条件测试满足条件时执行的代码2
        条件测试满足条件时执行的代码n....
    elif 条件测试:
        条件测试满足条件时执行的代码1
        条件测试满足条件时执行的代码2
        条件测试满足条件时执行的代码n....
    else:
        不满足条件测试的条件时执行的代码1
        不满足条件测试的条件时执行的代码2
        不满足条件测试的条件时执行的代码n....

瘦西湖,
6岁及以下免票,
6-18岁半价50,
18岁及以上100

​
​
age = int(input("请输入您的年龄:"))
if age <= 6:
    print("你免票!")
elif 6 < age <= 18:
    print("半价50!")
else:
    print("全票100!")
-----------------------------------

while语句

While语法格式: 
    While 条件测试:
            满足条件测试执行的循环体代码1
            满足条件测试执行的循环体代码2
            满足条件测试执行的循环体代码n

i = 0
while i < 10:
	print(i)
	i = i + 1

age = int(input("请输入您的年龄:"))
while age != 'q':
    if age <= 6:
        print("你免票!")
        age = int(input("请输入您的年龄:"))
    elif 6 < age <= 18:
        print("半价50!")
        age = int(input("请输入您的年龄:"))
    else:
        print("全票100!")
        age = int(input("请输入您的年龄:"))
--------------

break:中断,当代码运行到break的时候,直接退出当前循环
continue:当代码运行到continue的时候,回到条件测试处重新开始

第十二章 函数

函数介绍

通过表达式计算

函数的定义

def greet_user(): 
    print("Hello")
定义函数时的注意事项:
    1.函数的定义和正文代码之间空两行
    2.函数和函数之间也要空两行
​
Pycharm提供了快速调整格式的快捷键

函数的调用

def greet_user():
    print("Hello")
    print("Hi")

    
greet_user()
-----------------------
Hello
Hi

函数的传参

函数分为实参和形参
    由实参传递给形参
def greet_user(user):    # 形参
    print("Hello" + user)
​
​
username = input("请输入你的大名:")
greet_user(username)   # 实参
-----------------------------------
请输入你的大名:root
Helloroot

函数的传参方式

位置实参
位置实参也是默认的传参方式
实参1-->形参1
实参2-->形参2
...
def func1(system, version):
    print(system)
    print(version)
​
​
sys = input("请输入您的系统:")
ver = input("请输入您的版本:")
func1(sys, ver)  # 将sys实参按照位置传递给形参system,将ver实参按照位置传递给形参version
---------------
请输入您的系统:Windows
请输入您的版本:11
Windows
11
关键字实参
def func1(system, version):
    print(system)
    print(version)
​
​
sys = input("请输入您的系统:")
ver = input("请输入您的版本:")
func1(version=ver, system=sys) # 将实参的值赋给形参
----------------------------
请输入您的系统:Windows
请输入您的版本:11
Windows
11
默认值实参
如果选择使用默认值实参,在定义的时候,需要将有默认值的形参放在最后。
​
如果一个形参定义了默认值,且没有实参传递给该形参的情况下,使用默认值。
如果一个形参定义了默认值,但是有实参传递给该形参且值不相同,则使用实参的值。
​
def func1(version, system="Windows"):
    print(system)
    print(version)
​
​
sys = input("请输入您的系统:")
ver = input("请输入您的版本:")
func1(ver, sys)
-------------------------
请输入您的系统:Linux
请输入您的版本:CentOS8
Linux
CentOS8

函数的返回值

可以将函数体代码中运算的结果返回
def func2(x):
    y = x + 1
    return y 
​
​
a = int(input("请输入一个值:"))
print(func2(a))
---------------------
请输入一个值:1235
1236

函数传递未知数量的实参

在函数中,如果遇到多个实参传递给形参的情况,需要使用到*
如果要用一个形参接收多个实参的值,可以在前面*
def func1(*value):    # 如果定义了带*的形参,必须放在定义的最后
    print(type(value))
    for i in value:
        print(i)
​
​
func1(1, 2, 3, 4, 5)
------------------------
<class 'tuple'>
1
2
3
4
5

函数的模块调用

可以将函数作为.py文件导入到另一个py文件中使用

调用整个模块
直接调用.py的文件名
如:调用function.py这个py文件作为导入函数
import function

调用模块中特定功能
from function import func1

第十三章 类(选修)

编程思想:
    面向对象:
    面向过程:

类相关术语介绍

类:具有相同特征和属性的事物的统称,比如说:人类,狗类。
对象
对象是指将类实例化出来的内容,比如:人类--->张三,狗类--->二狗
实例化
由类生成对象的过程就叫做实例化

类的定义

类的定义需要遵循驼峰命名法
首字母必须大写,且不能有空格和下划线,如果有需要区分单词,则通过大小写来判断
class Dog:
    def walk(self):   # 在类中定义了一个方法
        print("叫")
​
​
# 实例化
goudan = Dog()
goudan.walk()
-------------------
叫

类中的方法

初始化方法
只要使用了类,就会有初始化方法
class Dog:
    def __init__(self):
        print("这里是初始化方法")
​
​
goudan = Dog()
定义类中的属性值
class Dog:
    def __init__(self, str1):
        print("这里是初始化方法")
        self.name = str1
​
    def walk(self):
        print("%s 走!" % self.name)
​
​
goudan = Dog("狗蛋")
goudan.walk()
print(goudan.name)
--------------------------
这里是初始化方法
狗蛋 走!
狗蛋

修改类中的属性值

1.直接修改

class Dog:
    def __init__(self, str1):
        print("这里是初始化方法")
        self.name = str1
​
    def walk(self):
        print("%s 走!" % self.name)
​
​
goudan = Dog("狗蛋")
goudan.walk()
print(goudan.name)
goudan = Dog("二狗")
goudan.walk()
print(goudan.name)
---------------------
这里是初始化方法
狗蛋 走!
狗蛋
这里是初始化方法
二狗 走!
二狗
​
2.新定义一个类,来做事情
class Dog:
    def __init__(self, str1):
        print("这里是初始化方法")
        self.name = str1
​
    def walk(self):
        print("%s 走!" % self.name)
​
    def change_name(self, str1):
        self.name = str1
​
goudan = Dog("狗蛋")
goudan.walk()
print(goudan.name)
goudan.change_name("旺财")
goudan.walk()
print(goudan.name)
------------------------
这里是初始化方法
狗蛋 走!
狗蛋
旺财 走!
旺财

第十四章 文件的操作

文件操作前言

文件就分为两种:
    文件(file)
    目录(directory)

文件的打开方式

只读:r,指针指向文件的开头处
写:w,指针指向文件的开头处,如果原文件有内容,则会覆盖掉
追加:a,指针指向文件的末尾处,如果原先有文件,就相当于添加新内容
​
open()方法打开文件
打开文件的默认方式就是只读
file1 = open("test1.txt")
​
如果你想以w方式打开文件
file1 = open("test1.txt", 'w')
​
如果想以a方式打开文件
file1 = open("test1.txt", 'a')

文件的操作

文件的读取
两种读取方式
先创建test1.txt,输入123
​
#一次性读取完文件的全部内容
1.相对路径读取
file1 = open("test1.txt")
text = file1.read()    # read方法读取file1的文件
print(text)
-----------
123
​
2.绝对路径读取
file1 = open("C:\\Users\\iknow\\PycharmProjects\\new\\test1.txt")
text = file1.read() # 
print(text)
----
123
​
如果读取的文件中有中文,需要加编码方式才能正确识别, "utf-8",万国编码
file1 = open("C:\\Users\\iknow\\PycharmProjects\\new\\test1.txt", encoding='utf-8')
text = file1.read()
print(text)
----------
123
456
789
你好
​
# 一行一行读文件内容
file1 = open("test1.txt", encoding='utf-8')
text = file1.readline()
print(text)
-------------
123
​
# 用readline()方法读取完文件的所有内容
file1 = open("test1.txt", encoding='utf-8')
while True:
    text = file1.readline()
    if text:
        print(text)
    else:
        break
file1.close() # 关闭文件
-------------------------
123
​
456
​
789
​
你好
文件的写入
w操作写入
w操作会覆盖原先的内容
file1 = open("test1.txt", 'w', encoding='utf-8')
file1.write("今天是10月11日")
file1.close()
​
# 如果要写入的文件并没有创建,则系统会创建这个文件并将值直接写入
file2 = open("test2.txt", 'w', encoding='utf-8')
file2.write("1")
file2.close()
a操作写入
a操作会在原先内容的后面追加
file1 = open("test1.txt", 'a', encoding='utf-8')
file1.write("今天天气还不错")
file1.close()

文件的复制
# 把一个文件的内容读取出来,写入到另一个文件中
file1 = open("test2.txt", encoding='utf-8')
text = file1.read()
file2 = open("test3.txt", 'a', encoding='utf-8')
file2.write(text)
file1.close()
file2.close()

文件的管理

管理文件模块
import os
删除文件
import os
os.remove("test2.txt") # 写文件的路径
创建文件夹
import os
os.mkdir("2023-10-11")
重命名文件夹
import os
os.rename("2023-10-11", "2022-10-11")
删除文件夹
import os
os.rmdir("2022-10-11")
获取程序当前的工作目录
import os
print(os.getcwd())
C:\Users\iknow\PycharmProjects\new
列出当前目录下有哪些文件
import os
print(os.listdir())
['.idea', '2023-10-12', 'main.py', 'test1.txt', 'venv', '函数.py', '异常处理.py', '文件操作.py']

更改工作目录
os.chdir()
import os
print(os.getcwd())
os.chdir("D:\\")
print(os.getcwd())
------------
C:\Users\iknow\PycharmProjects\new
D:\

判断一个对象是文件还是文件夹
import os
print(os.path.isdir("2023-10-12")) # 如果是目录(文件夹),返回True
----------
True
​
import os
print(os.path.isdir("test1.txt")) # 如果是文件,返回False
--------
False

第十五章 异常的处理

异常的概念

异常就是指程序不正常退出
程序的返回值只有是0才是正常的,其他都不正常

异常处理的语法

try:
    可能会导致异常的代码
except:
    出现异常后执行的操作
else:
    没有出现异常进行的操作try:
    age = input("请输入你的年龄:")
    if int(age) <= 18:
        print("免票")
    else:
        print("你需要支付门票2500元")
​
except:
    print("警告 警告 你该输入数字,你懂什么是数字吗?啊?")
​
else:
    print("程序执行正常,用户输入的就是年龄")

病态代码

有可能用户输入的不是数字,会出现异常,导致程序报错。

age = input("请输入你的年龄:")
if int(age) <= 18:
    print("免票")
else:
    print("你需要支付门票2500元")

应该做下异常处理

try:
    age = input("请输入你的年龄:")
    if int(age) <= 18:
        print("免票")
    else:
        print("你需要支付门票2500元")
​
except ValueError:
    print("警告 警告 你该输入数字,你懂什么是数字吗?啊?")
​
else:
    print("程序执行正常,用户输入的就是年龄")

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

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

相关文章

业财融合潮流下,构建国有企业全面预算管理体系

近年来&#xff0c;在我国快速发展的变革过程中&#xff0c;国有企业改革的持续深入需要积极结合市场环境和自身发展需求&#xff0c;然而其传统的财务管理模式难以适应企业提出的新要求&#xff0c;预算管理与经营销售之间不断出现隔阂。为确保全面预算管理在国有企业内部的良…

部署个人静态网站到阿里云服务器(含域名解析)

使用前提&#xff1a; 您目前已经有一个静态网站&#xff0c;可以在本地通过html进行访问。 1、购买阿里云服务器 该步骤最详细的教程来自官方文档 具体到从注册开始每一个鼠标点击都有图片介绍。 你可以按照他的步骤完成整个部署过程&#xff0c;当然可以自己选择服务器的…

【实用调试技巧】总是找不到Bug?手把手教你在vs2022中调试程序

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:程序调试及报错解决 ⚙️操作环境:Visual Studio 2022 目录 什么是Bug? 1947年9月9日:第一个"Bug"被发现 什么是调试? 调试是什么? 调试的基本步骤 Debug和Relese的区别 1.调试的区别 2.文件大小的…

13 | 如何正确使用 @Entity 里面的回调方法

Java Persistence API 里面规定的回调方法有哪些&#xff1f; JPA 协议里面规定&#xff0c;可以通过一些注解&#xff0c;为其监听回调事件、指定回调方法。下面我整理了一个回调事件注解表&#xff0c;分别列举了 PrePersist、PostPersist、PreRemove、PostRemove、PreUpdat…

线性排序:如何根据年龄给100万用户数据排序?

文章来源于极客时间前google工程师−王争专栏。 桶排序、计数排序、基数排序时间复杂度是O(n)&#xff0c;所以这类排序算法叫作线性排序。 线性的原因&#xff1a;三个算法是非基于比较的排序算法&#xff0c;都不涉及元素之间的比较操作。 三种排序对排序的数据要求苛刻&am…

19 | 如何搞清楚事务、连接池的关系?正确配置是怎样的

事务的基本原理 在学习 Spring 的事务之前&#xff0c;你首先要了解数据库的事务原理&#xff0c;我们以 MySQL 5.7 为例&#xff0c;讲解一下数据库事务的基础知识。 我们都知道 当 MySQL 使用 InnoDB 数据库引擎的时候&#xff0c;数据库是对事务有支持的。而事务最主要的作…

(转)富文本编辑器——Vue2Editor

介绍 Vue2Editor是一个简单易用且功能强大的Vue版本的富文本编辑器&#xff0c;其基于Quill.js和Vuejs构建&#xff01; 简单易用、功能强大的富文本编辑器——Vue2Editor Github https://github.com/davidroyer/vue2-editor 特性 简单易用&#xff1b;基于Vue.js & Quil…

【Golang】Go的并发和并行性解释。谁说Go不是并行语言?

偶然发现百度上有很多"师出同门"的"go是并发语言&#xff0c;而不是并行语言"的说法。让我顿感奇怪&#xff0c;"并行"说白了就是对CPU多核的利用&#xff0c;这年头不能利用多核的编译语言还有的混&#xff1f;而且还混的这么好&#xff1f;并且…

Linux网络编程系列之服务器编程——非阻塞IO模型

Linux网络编程系列 &#xff08;够吃&#xff0c;管饱&#xff09; 1、Linux网络编程系列之网络编程基础 2、Linux网络编程系列之TCP协议编程 3、Linux网络编程系列之UDP协议编程 4、Linux网络编程系列之UDP广播 5、Linux网络编程系列之UDP组播 6、Linux网络编程系列之服务器编…

echarts关于一次性绘制多个饼图 (基于vue3)

在echarts中&#xff0c;dataset 和 source 是用来配置数据的选项。 dataset 是一个包含数据相关配置的对象&#xff0c;用于指定数据的来源和格式。它可以包含多个维度的数据集&#xff0c;每个维度都可以有自己的名称和数据。 source 是 dataset 中的一个子项&#xff0c;用于…

图计算(林子雨慕课课程)

文章目录 13. 图计算13.1 图计算简介13.2 Pregel简介13.3 Pregel图计算模型13.3.1 有向图和顶点13.3.2 Pregel的计算过程13.3.2 Pregel实例 13.4 Pregel的C API13.4.1 定义Vertex基类13.4.2 消息传递机制和Combiner13.4.3 Aggregator、拓扑改变和输入输出 13.5 Pregel的体系结构…

【通过实验带你认识linux下的源码编译】

通过实验带你认识linux下的源码编译 01 初识项目编译02 编译过程03 完整的编译过程1、创建源代码文件2、创建configure脚本3、创建Makefile.am 源代码是相对目标代码和可执行代码而言的。源代码是用汇编语言和高级语言写出来的代码。 目标代码是指源代码经过编译程序产生的能被…

qml介绍

文章目录 qml简介对象一个风车的例子 qml简介 从 Qt 4.7 开始&#xff0c;Qt 引入了一种声明式脚本语言&#xff0c;称为 QML&#xff08;Qt Meta Language 或者 Qt Modeling Language&#xff09;&#xff0c;作为 C 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库…

(latex中appendix附录怎么写)以及(附录里面的图片表格之类的如何重新编号)

文章目录 初级&#xff1a;怎么写进阶&#xff1a;怎么重新编号进阶&#xff1a;怎么换成单栏格式 初级&#xff1a;怎么写 这个很简单&#xff0c;我一开始以为很复杂。 \begin{document} #这里是“正文”。 #这里是“引用”。 #下面开始是附录。 \appendix \section{Proofs…

英语——分享篇——每日100词——801-900

medical——adj.医疗的——me我(熟词)di弟(拼音)cal擦了(拼音) chief——n.酋长——thief小偷——小偷拜见酋长 pork——n.猪肉——p皮鞋(编码)or偶人(拼音)k机关枪(编码)——穿着皮鞋的偶人扛着机关枪挑猪肉 pie——n.馅饼&#xff0c;派——瞥——他无意瞥见一块馅饼 saus…

GB28181平台简介

产品简介 LiveMedia视频中间件是支持部署到本地服务器或者云服务器的纯软件服务&#xff0c;也提供服务器、GPU一体机全包服务&#xff0c;提供视频设备管理、无插件、跨平台的实时视频、历史回放、语音对讲、设备控制等基础功能&#xff0c;支持视频协议有海康、大华私有协议…

Golang学习记录:基础篇练习(一)

Golang学习记录&#xff1a;基础篇练习&#xff08;一&#xff09; 1、九九乘法表2、水仙花数3、斐波那契数列4、编写一个函数&#xff0c;求100以内的质数5、统计字符串里面的字母、数字、空格以及其他字符的个数6、二维数组对角线的和7、冒泡排序算法8、选择排序算法9、二分查…

JDK 19 协程新特性学习

目录 一、协程定义 二、协程发展史 &#xff08;一&#xff09;协程的基本发展史说明 &#xff08;二&#xff09;Java协程发展说明 三、JDK 19 协程的原理细节 &#xff08;一&#xff09;Thread.ofVirtual().start() &#xff08;二&#xff09;SocketChannel.write(…

没有前端如何测试后端跨域问题

一、问题 前段时间对项目中的跨域做了相关的处理&#xff0c;网上有很多跨域的解决方案。前端解决&#xff0c;后端解决&#xff0c;nginx代理解决。我采用的是在后端中使用Cors来解决跨域的问题。但是前端项目还没有搭建起来&#xff0c;并不知道Cors的解决方案是否会生效&am…

揭秘元宇宙背后最炫科技风:数字经济时代,元宇宙发展解决方案及核心技术

文章目录 前言一、关于“元宇宙”业界趋势1.1、元宇宙的概念与发展历程1.2、行业应用体验向虚实融合和实时互动演进1.3、数字内容成为各行业 3D 数字世界入口 二、对于元宇宙发展的解决方案和实践2.1、MetaStudio 构建场景化全栈能力2.2、企业 3D 空间&#xff0c;围绕 4 类场景…