Python语言快速入门下2

news2024/12/22 10:52:39

目录

一、前言

二、字符串

【字符串】

【字符串格式化】

【字符串常用方法】

1)去掉空格和特殊字符

3)字符串的测试和替换函数

4)字符串的分割

5)连接字符串

6)截取字符串(切片)

7)#split()

8)lower(), upper(), capitalize(), title(), swapcase()

9)strip()、 rstrip()、Istrip()

10)值

11)关键字 in

12)startswith()、endswith()

【字符串常量】

三、异常处理

【例题1】最大公约数

【例题2】除法

【例题3】最大公约数、除法


一、前言

本文是Python语言入门的最后一节,主要讲字符串和异常处理。

二、字符串

【字符串】

字符串属于不可变序列类型,使用单引号、双引号、三单引号或三双引号作为界定符,不同界定符之间可以互相嵌套

支持序列通用方法,包括比较、计算长度、元素访问、切片等

支持一些特有的操作方法,包括格式化操作、字符串查找、字符串替换等

不支持元素增加、修改与删除等操作

Python 3.x中字符串类型为str类型

Python 3.x中,程序源文件默认为UTF-8编码

【字符串格式化】

形式:

'%[-][+][0][m][.n]格式字符'%表达式

>>> print('%10d'%3)
         3
>>> print('%.4f'%3.14159)
3.1416
>>> print('%c'%65)
A
>>> print('%s'%65)
65
>>> print('%s'%[1,2,3])
[1, 2, 3]
>>> print(str([1,2,3]))
[1, 2, 3]
>>> print('%d'%'123')
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    print('%d'%'123')
TypeError: %d format: a number is required, not str
>>>

使用format()方法进行格式化

>>> print('The number {0:,} in hex is:{0:#x},the number {1} in oct is {1:#o}'.format(123456,789))
The number 123,456 in hex is:0x1e240,the number 789 in oct is 0o1425
>>> print('The number {1:,} in hex is:{1:#x},the number {0} in oct is {0:#o}'.format(123456,789))
The number 789 in hex is:0x315,the number 123456 in oct is 0o361100
>>> print('my name is {name:>20},my age is {age}.'.format(name='yjg',age=22))
my name is                  yjg,my age is 22.
>>>

【字符串常用方法】

1)去掉空格和特殊字符

3)字符串的测试和替换函数

4)字符串的分割

5)连接字符串

‘,’.join(slit)  用逗号连接 slit 变成一个字符串,slit 可以是字符,列表,字典 (可迭代的对象)。int 类型不能被连接。

6)截取字符串(切片)

>>> str='0123456789'
>>> print(str[0:3])	#截取第一位到第三位的字符
012
>>> print(str[6:])	#截取第七个字符到结尾
6789
>>> print(str[2])
2
>>> print(str[::-1])
9876543210
>>> print(str[-3:-1])
78
>>> print(str[-3:])
789
>>>
>>> s='kiwifruit,lemon,lichee,orange,peach,banana,plum,carrot,maize'
>>> print(s.find('peach'))
30
>>> print(s.find('peach',7))
30
>>> print(s.find('peach',7,20))
-1
>>> print(s.rfind('p'))
43
>>> print(s.index('p'))
30
>>> print(s.index('pea'))
30
>>> print(s.rindex('pea'))
30
>>> print(s.count('p'))
2
>>> print(s.count('pp'))
0
>>> print(s.count('ppp'))
0
>>> print(s.split(','))
['kiwifruit', 'lemon', 'lichee', 'orange', 'peach', 'banana', 'plum', 'carrot', 'maize']
>>>

7)#split()

通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

>>> s='2022-12-26'
>>> print(list(map(int,s.split('-'))))
[2022, 12, 26]
>>> s='hello world My name is abc'
>>> print(s.split())
['hello', 'world', 'My', 'name', 'is', 'abc']
>>> print(s.split(None,4))
['hello', 'world', 'My', 'name', 'is abc']
>>> li=['kiwifruit', 'lemon', 'lichee', 'orange', 'peach']
>>> print(','.join(li))
kiwifruit,lemon,lichee,orange,peach
>>>

8)lower(), upper(), capitalize(), title(), swapcase()

>>> print('What is Your Name?'.lower())
what is your name?
>>> print('What is Your Name?'.upper())
WHAT IS YOUR NAME?
>>> print('What is Your Name?'.capitalize())
What is your name?
>>> print('What is Your Name?'.title())
What Is Your Name?
>>> print('What is Your Name?'.swapcase())
wHAT IS yOUR nAME?
>>>

9)strip()、 rstrip()、Istrip()

strip() 方法用于移除字符串头尾指定的字符 (默认为空格)

>>> print('  abc '.strip())
abc
>>> print('  abc '.rstrip())
  abc
>>> print('  abc '.lstrip())
abc 
>>> print('\nhello \nworld \n'.strip())
hello 
world
>>> print('abcdabcaba'.strip('a'))
bcdabcab
>>>

10)值

import math
print(eval('3+4'))
a,b=3,5
print(eval('a+b'))
print(eval('math.sqrt(3)'))
print(eval('b'))

7
8
1.7320508075688772
5
>>> 

11)关键字 in

print('a' in 'abcde')
print('ab' in 'abcde')
print('j' in 'abcde')

True
True
False

12)startswith()、endswith()

startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回True,否则返回False。如果参数 beg 和 end 指定值,则在指定范围内检查。

print('Beautiful'.startswith('Be'))
print('Beautiful'.startswith('Be',5))
print('Beautiful'.startswith('Be',0,5))
print('Beautiful'.endswith('ful'))

True
False
True
True

【字符串常量】

string.digits  所有数字

string.ascii_letters  所有字母

string.ascii_lowercase  所有小写字母

string.ascii_uppercase  所有大写字母

import string
print(string.digits)
print(string.ascii_letters)
print(string.ascii_lowercase)
print(string.ascii_uppercase)

0123456789
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ

三、异常处理

  • 在编写程序的过程中,程序员通常希望识别正常执行的代码和执行异常的代码。
  • 这种异常可能是程序的错误,也可以是不希望发生的事情。
  • 为了能够处理这些异常,可以在所有可能发生这种情况的地方使用条件语句进行判断。但这么做既效率低,也不灵活,而且还无法保证条件语句覆盖了所有可能的异常。
  • 为了更好地解决这个问题,Python语言提供了非常强大的异常处理机制。通过这种异常处理机制,可以直接处理所有发生的异常,也可以选择忽略这些异常。
  • 开发人员在编写程序时,难免会遇到错误,有的是编写人员疏忽造成的语法错误,有的是程序内部隐含逻辑问题造成的数据错误,还有的是程序运行时与系统的规则冲突造成的系统错误,等等。总的来说,编写程序时遇到的错误可大致分为2类:
  • 语法错误:print “Hello,World!”  Python 3 不再支持这种写法
  • 运行错误:a=1/0
  • 在Python中,这种运行时产生错误的情况叫做异常 (Exceptions)

  • 当一个程序发生异常时,代表该程序在执行时出现了非正常的情况,无法再执行下去。默认情况下,程序是要终止的。如果要避免程序退出,可以使用捕获异常的方式获取这个异常的名称,再通过其他的逻辑代码让程序继续运行,这种根据异常做出的逻辑处理叫作异常处理。
  • 开发者可以使用异常处理全面地控制自己的程序。异常处理不仅仅能够管理正常的流程运行,还能够在程序出错时对程序进行必要的处理。大大提高了程序的健壮性和人机交互的友好性。
  • 那么,应该如何捕获和处理异常呢?可以使用try语句来实现。

正如下图所示:

【例题1】最大公约数

import math
while True:
    try:
        x,y=map(int,input('请输入两个整数:').split())
        print('%d与%d的最大公约数为: %d'%(x,y,math.gcd(x,y)))
    except ValueError:
        print('你输入的不是合法的数据,请重新输入...')

请输入两个整数:45 345
45与345的最大公约数为: 15
请输入两个整数:ssd 33
你输入的不是合法的数据,请重新输入...
请输入两个整数:-1223 345
-1223与345的最大公约数为: 1
请输入两个整数:

【例题2】除法

x=3.5
try:
    y=float(input('请输入除数:'))
    z=x/y
except ZeroDivisionError:
    print('除数不能为0')
except ValueError:
    print('除数应为数值类型')
else:
    print(x,'/',y,'=',z)

请输入除数:9
3.5 / 9.0 = 0.3888888888888889
>>> 
=====
请输入除数:0
除数不能为0
>>> 
======
请输入除数:uy
除数应为数值类型
>>>

【例题3】最大公约数、除法

x=3.5
try:
    y=float(input('请输入除数:'))
    z=x/y
except BaseException as e:
    print('你输入的不是合法的数据',e)
else:
    print(x,'/',y,'=',z)


请输入除数:8
3.5 / 8.0 = 0.4375
>>> 
======
请输入除数:gh
你输入的不是合法的数据 could not convert string to float: 'gh'
>>> 

以上,Python语言快速入门下2

祝好

 

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

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

相关文章

2022年「博客之星」,花落谁家? 大家来竞猜吧

一年一度的「博客之星」大赛如火如荼地进行着&#xff0c;大家都忙着评分、发帖、回帖.....今天发现我在分组的排名只有40多名&#xff0c;基本上算是放弃了。但是&#xff0c;看到本文的朋友&#xff0c;还是可以帮我拉拉票的&#xff01;请点开链接给个五星评分&#xff1a; …

Linux下安装Fastdfs

一、前期准备工作 1、需要提前下载的安装包&#xff1a; &#xff08;1&#xff09;libfatscommon-1.0.43&#xff1a;FastDFS分离出的一些公用函数包 &#xff08;2&#xff09;fastdfs-6.06&#xff1a;FastDFS本体包 &#xff08;3&#xff09;nginx&#xff1a;nginx-1.2…

服装行业进销存软件哪个好?

好用的进销存软件有以下评判标准&#xff1a; 1. 能否为企业带来效益。理清自身在进销存管理中的难点以及进销存软件需要具备的功能。 2. 是否简单实用&#xff0c;人员是否上手容易。选购软件不易太复杂&#xff0c;会给前期软件使用造成人力、物力等压力。 3. 进销存软件的…

【SpringBoot应用篇】SpringBoot集成AntiSamy防御XSS(跨站脚本攻击)--过滤器实现

【SpringBoot应用篇】SpringBoot集成AntiSamy防御XSS&#xff08;跨站脚本攻击&#xff09;--过滤器实现XSS介绍AntiSamy介绍AntiSamy使用pomUserUserControllerXssFilterXssRequestWrapper配置类XSS介绍 XSS&#xff1a;跨站脚本攻击(Cross Site Scripting)&#xff0c;为不和…

4、MYSQL常用函数(字符串)

目录 abs&#xff08;x&#xff09;&#xff1a;返回x的绝对值 ceil&#xff08;x&#xff09;&#xff1a;返回大于x的最小整数 floor&#xff08;x&#xff09;&#xff1a;返回小于x的最大整数 mod&#xff08;x,y&#xff09;&#xff1a;返回x/y的模 Rand&#xff08;&a…

分析激光焊接机焊接不牢固的原因

激光焊接机在焊接时为什么会出现焊接不牢固呢&#xff1f;是不是激光焊接设备出现问题了&#xff1f;当激光焊接机进行焊接加工时&#xff0c;出现材料之间的焊接不牢固这会影响整体质量。这时&#xff0c;用户不可避免地会质疑激光焊接机的效果我们也是可以理解的。实质出现激…

javaEE初阶---多线程(初阶)

一 : 学习目标 认识多线程掌握多线程程序的编写掌握多线程的状态掌握什么是线程不安全及解决思路掌握synchronized、volatile关键字 二 : 初识线程 2.1 线程概念 线程&#xff08;thread&#xff09;是操作系统能够进行运算调度的最小单位.它被包含在进程之中&#xff0c;是进…

django使用二——restful框架使用

背景 前言&#xff1a; 前篇django使用一&#xff0c;已将基本的项目、应用创建并运行&#xff1b;见&#xff1a;django使用一——规范化创建 本篇则针对ViewSet及rest_framework初使用做介绍&#xff1b; 闲笔&#xff1a; 两束平行宇宙射线射入黑盒&#xff0c;在人们充满…

《计算机网络》——第六章知识点

第六章思维导图如下&#xff1a; 应用层对应用程序的通信提供服务。 域名解析:根据域名找IP地址 域名结构 FTP是基于客户/服务器(C/S)的协议。 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP协议提供服务&#xff0c;进行文件传送的计算机就是FTP服…

对象类型的设计(简答题)

在实际项目开发中需要进行对象类型的设计&#xff0c;给你的问题是&#xff0c;在学生信息系统中需要你设计班级Classes类型和学生Student类型&#xff0c;为了便于数据的查询&#xff0c;需要建立对象之间的联系&#xff0c;比如一个班级有多个学生&#xff0c;每个学生属于一…

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式 Allegro可以显示PCB的3D效果,利于查看和检查,如下图 具体操作如下 选择Set-up-user preferences选择Display

游戏党别错过,提升FPS试试这样

如果你准备畅玩游戏&#xff0c;却频繁掉帧&#xff0c;严重影响游戏体验&#xff0c;那这里有些提升FPS的小方法&#xff0c;游戏党别错过了。 整理主硬盘更改电源选项更新显卡驱动降低屏幕分辨率关闭其他应用程序并禁用启动项 方法一、整理主硬盘 1、打开文件资源管理器&am…

APP Inventor练习——蓝牙通信

文章目录前言一、蓝牙调试1.组件设计2.逻辑设计二、蓝牙对战1.组件设计2.逻辑设计3.效果展示总结前言 练习APP Inventor中蓝牙的使用&#xff0c;并为之前的项目APP小游戏——一个都不能死增加了蓝牙对战功能。 一、蓝牙调试 先写一个蓝牙调试的APP&#xff0c;用来收发文本 …

2023年七大网络攻击手段预测

受疫情和网络攻击的加持下&#xff0c;2022年对网络安全领域的人来说并不是轻松的一年&#xff0c;一系列备受瞩目的网络攻击、数据泄露事件打的网安人手忙脚乱&#xff0c;供应链攻击、勒索软件攻击、业务欺诈、关键基础设施攻击、大规模数据泄露、地缘政治相关黑客攻击等网络…

热点舆情监测软件方法,舆情监测软件介绍,舆情软件监测意义?

热点舆情监测是指监测和分析当前热门话题或事件的舆情监测。这种监测可以帮助企业、政府机构或媒体机构了解公众对当前热门话题或事件的看法&#xff0c;接下来TOOM舆情监测小编简单介绍热点舆情监测软件方法&#xff0c;舆情监测软件介绍&#xff0c;舆情软件监测意义? 一、…

java8后接口的默认方法

这里我们先看一个案例 我们创建一个包 包下创建一个接口 testInterface 参考代码如下 public interface testInterface {void show(); }然后 我们创建一个类型 realizationMethod 来实现这个接口 并重写这个show方法 realizationMethod 参考代码如下 public class realizat…

腊八节吃什么What to eat on the Laba Festival

农历十二月初八是中国的传统节日——腊八节&#xff0c;腊代表中国农历的十二月&#xff0c;而八是eight的发音&#xff0c;因此&#xff0c;这个节日被翻译成腊八。 The Laba Festival is a traditional Chinese holiday celebrated on the eighth day of the twelfth month …

Selenium switch_to 处理多Web页签窗口与封装

目录 前言 脚本案例 未做页签切换处理的 做了页签切换处理的脚本 面签切换封装 1、按面签位置切换封装 2、按页签标题切换封装 3、两个封装的调用 前言 在做自动化测试时&#xff0c;经常会遇到一个链接&#xff0c;它会重新打开一个Web签&#xff0c;如下图的样式 如…

Tif地形数据下载CTB切片nginx发布及cesium调用

访问这个网站&#xff1a;https://urs.earthdata.nasa.gov/ 需要注册 选择数据类型如下 点击Search,可以看到很多搜索结果 点击下载一项tif 下载成功后&#xff0c;需要切片的话&#xff0c;可以选择两种方式 1CesiumLab3,如下图 可以选择多个tif&#xff0c;输出类型选择散…

LeetCode118.杨辉三角 | LeetCode119.杨辉三角Ⅱ

LeetCode刷题记录 文章目录&#x1f4dc;杨辉三角Ⅰ⌨C代码&#x1f4dc;杨辉三角Ⅱ⌨C代码&#x1f4dc;杨辉三角Ⅰ 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例1 输入: n…