我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python十讲 - 第二讲:变量和基础

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python十讲 - 第二讲:变量和基础

变量

字符串

数字和运算符

数据类型转换

2.1 变量

1. 变量是什么?

变量,是指把程序运行的中间结果临时的存在内存里,以便后续的代码调用,其值可以修改。

在python中,当变量被使用时,在内存里将产生两个动作,一是开辟指定地址的空间,二是赋予指定的变量值。

在python语言中,变量在指定的同时,必须强制赋初值,否则解释器报错。

name        # name变量未赋值,解释器认为非法,报未定义错误
name = 'kidd'        # name变量赋予初值'kidd',解释器执行通过

这里的name为变量名,其值为'kidd'。Python变量赋值通过等号(=)来实现。

变量建立的结果,往往被其他代码所使用。例如:

x = 1+2+3+4
print(x)        # print函数打印变量x的结果,输出10

 

2. 多个变量赋值

Python允许同时为多个变量赋值。

one = two = three = 1
print(one, two, three)        # print函数允许多值打印输出,用逗号分隔变量
注:one, two, three三个变量在内存中指向同一个地址。也可以按照下面的格式,给不同的变量名赋值:
one, two, three = 1, 1, 1
print(one, two, three)        # print输出值也为三个连续的1

 

3. 变量值类型

所有编程语言的变量值都是分类型的,Python语言变量值的类型在赋值后才被隐性确定。

例如x = 0,那么0就是整数类型的值;x = 'ok',那么ok就是字符串类型的值;x = True,那么True就是布尔类型的值。

Python语言的基本变量类型包括字符串、数字、列表、元组、字典五大类。

注:变量命名规则

(1)变量只能由字母、数字、下划线组成。

(2)不能以数字开头。

(3)不能是python中的关键字

(4)大小写区分,a = 1和A = 1是两个变量。

以上要求是必须满足的,下面的要求要尽量做到

(5)变量名要有描述性,要简洁、易读,不宜过长。

(6)变量名不能使用中文以及拼音。

(7)官方推荐使用的变量名:

    下划线:my_name = 'kidd'

    驼峰体:MyName = 'kidd'
注:关于常量

常量,即不能变的数据对象。

在python中,常量名全部为大写,且放在文件的最上面。

NAME = ‘kidd’

 

2.2 字符串

字符串,由任意字节的字符组成,用单引号(')、双引号( “)或三引号(''')成对表示。

简单的说,凡是用引号括起来的就是字符串。

name = 'kidd'

name1 = "kidd"

单双引号配合使用:

s = "I'm kidd"

当一个字符串有多行时,一般考虑使用三引号:

msg = '''床前明月光,
    疑是地上霜,
    举头望明月,
    低头思故乡。'''
注:只有引号,没有字节内容的字符串也是合法的。例如name = ''

 

2.2.1 字符串的基本操作

字符串值基本操作包括读取、合并、修改、删除、查找

1. 字符串值的读取

s = 'Tom is a cat'

代码中的字符串在内存中的存放顺序如下表所示:

s字符串: T o m   i s   a   c a t
对应下标地址: 0 1 2 3 4 5 6 7 8 9 10 11

 

 

从上表可以看出,字符串中的每个字符都对应一个下标。字符串的下标都是从0开始。

 

注:下面对字符串进行的操作,形成的都是一个新的字符串,与原来的字符串没有关系

(1)按照索引取值:[下标]。

s1  = s[2]        # 读取下标为2的字符
print(s1)
结果:m

(2)按照切片取值:[左下标: 右下标],顾头不顾尾。

s2 = s[4:6]        # 读取下标为4,5的字符
print(s2)
结果:is

(3)带冒号省略下标方式切片:[左下标: ]、[: 右下标]、[ : ]。

s3 = s[: 3]        # 读取下标为前三个的字符
print(s3)
结果:Tom
[: 3] 指的是从字符串的开始,读到下标为2的字符

s4 = s[9: ]        # 读取下标从第9到最后的字符
print(s4)
结果:cat

s5 = s[:]        # 读取整个字符串
print(s5)
结果:Tom is a cat

(4)负数下标读取:用负数下标从右到左读取对应的字符串值。

s6 = s[-1]        # 从右往左,读取右边第一个字符
print(s6)
结果:t

s7 = s[-3: -1]        # 从右往左,读取倒数第三个、倒数第二个字符
print(s7)
结果:ca

(5)带步长的切片读取:[左下标: 右下标: 步长]。

s8 = s[: : 2]         # 从头到尾,步长为2,读取对应字符
print(s8)
结果:Tmi  a

# 如果想倒序取值,加一个反向步长(步长前加负号)
s9 = s[-1:-6: -2]
print(s9)
结果:tca
注1:Python在采用下标读取其他对象值时,也统一采用类似风格的下标使用方法,如后面要讲到的列表、元组等。
注2:使用下标时,超出字符串范围读取值,解释器将报错。

 

2. 字符串值合并

对于不同的字符串,可以通过加号(+)进行合并操作

name = 'kidd'
job = 'student'
res = name + ', ' + job        # 用加号合并三个字符串
print(res)
结果:kidd, student
注:字符串值也可以与数字相乘
s = '锦鲤'
s1 = s * 6        # 重复显示6个锦鲤
print(s1)
结果:锦鲤锦鲤锦鲤锦鲤锦鲤锦鲤

 

3. 字符串值修改

replace:替换
s = 'Tom is a cat, Tom...'
s1 = s.replace('Tom', 'Jack')        # 前面为要替换的内容,后面为替换的内容
print(s1)
结果:Jack is a cat, Jack...

# 可以设置替换次数,但是只能从前往后开始替换
s2 = s.replace('Tom', 'Jack', 1)
print(s2)
结果:Jack is a cat, Tom...

 

name = 'I am a student'
new_name = name[: 7] + 'teacher'
print(new_name)
结果:I am a teacher
上述字符串值的修改,是通过读取子字符串并合并的方法实现的。
不能直接对字符串做如下修改操作:
name[3] = 'i'        # 解释器将报错

 

4. 字符串值删除

strip:默认去除字符串前后的空格、换行符(\n)、制表符(\t)
name = '\tblame kidd '
print(name.strip())
结果:'blame kidd'        # 加引号是为了区分空格

# 也可以指定去除的字符
name = '**blame kidd*'
print(name.strip('*'))        # 去除字符串首尾的*
结果:blame kidd

name = 'iwakiddwa'
print(name.strip('wai'))
结果:kidd

去除字符串前面的空格:lstrip
去除字符串后面的空格:rstrip


# 应用举例:登录账户时
username = input('请输入用户名:').strip()
if username == 'kidd':
    print('登录成功!')

 

del:删除整个字符串值
del(name)        # 清楚内存中的name,再次调用name将报错
说明:del(x)函数函数内存中一个指定的对象x,x可以是字符串、数字、列表、元组、字典、类等。

 

5. 字符串值查找

判断以什么为开头:startswith
print(name.startswith('bl'))        # 判断是否以bl开头
结果:True

print(name.startswith('e', 4))        # 判断第5个位置之后的字符串以什么开头
结果:True

print(name.startswith('la', 1, 5))        # 判断第2个位置到第5个位置的字符串以什么为开头
结果:True
判断以什么为结尾:endswith
与startswith用法一致

 

通过元素找索引,找到第一个元素就返回索引值,没有此元素则返回-1:find
print(name.find('a'))
结果:2

print(name.find('d'))
结果:7

print(name.find('w'))
结果:-1

print(name.find('m', 1, -1))        # find可以设置查找的字符串的开始位置和结束位置
结果:3

 

通过元素找索引,找到第一个元素就返回其索引值,没有此元素则报错:index
print(name.index('a'))
结果:2

print(name.index('w'))        # 没有w,报错

 

2.2.2 其它常用操作

1. 获取字符串长度

用len函数可以获取字符串长度

name = 'blame kidd'
print(len(name))
结果:10
说明:len(x)函数返回一个对象的长度,x可以是字符串、列表、元组、字典。
注:
在python3.6版本中,把一个汉字看作一个字符串长度
在python2.x版本中,把一个汉字看作两个字符串长度

 

2. r/R原始字符串控制符号

print('D:\back\name')        # 字符串里含特殊转移符号,\b, \n
结果:D:ack        # 没有使用r情况下,\b转为了退格符,实现了退一格的效果
ame        # \n转为了换行符,实现了其后字母的换行显示

print(r'D:\back\name')
结果:D:\back\name        # 在使用r情况下,字符串原样输出,转义字符不起作用

 

3. split:将字符串分割成列表(str -- > list), 默认按照空格分割

s = 'apple huawei xiaomi'
l1 = s.split()        # 默认按照空格分割
print(l1)
结果:['apple', 'huawei', 'xiaomi']

s = 'apple, huawei xiaomi'
l2 = s.split(',')
print(l2)
结果:['apple', 'huawei xiaomi']
注意这三个的区别:
s1 = ' apple huawei xiaomi'
print(s1.split())
结果:['apple', 'huawei', 'xiaomi']

s2 = ' apple huawei xiaomi'
print(s2.split(' '))
结果:['', 'apple', 'huawei', 'xiaomi']

s3 = ',apple,huawei,xiaomi'
print(s3.split(','))
结果:['', 'apple', 'huawei', 'xiaomi']
# 可以设置split的分割次数
s = 'blameliop'
print(s.split('l', 1))
结果:['b', 'lameliop]

 

4. join:自定制连接符,将可迭代对象中的元素连接起来

s = 'kidd'
s1 = '*'.join(s)
print(s1)
结果:k*i*d*d

 

5. capitalize:首字母大写

name = 'blame kidd'
print(name.capitalize())
结果:Blame kidd

 

6. title:非字母隔开的每个部分的首字母大写

name = 'blame kidd'
print(name.title())
结果:Blame Kidd

 

7. center:字符串居中,前后填充自定义的字符

name = 'blame kidd'
print(name.center(20, '*'))
结果:*****blame kidd*****

 

8. upper:字符串全部大写;;lower:字符串全部小写

name = 'Blame Kidd'
print(name.upper())
结果:BLAME KIDD

print(name.lower())
结果:blame kidd
应用场景:验证码不区分大小写
code = 'AjkG'.lower()
your_code = input('请输入验证码:').lower()
if code == your_code:
    print('验证成功!')

 

9. swapcase:大小写转换

name = 'BlaMe kiDd'
print(name.swapcase())
结果:bLAmE KIdD

 

10. 格式化输出:%、format

# %s为格式化字符串;%d为格式化整数
name = 'blame kidd'
age = 18
print('My name is %s, My age is %d'%(name, age))
结果:My name is blame kidd, My age is 18
format有三种方式
第一种:
s1 = '我叫{}, 今年{}'.format('kidd', '18')
print(s1)
结果:我叫kidd, 今年18

第二种:
s2 = '我叫{0}, 今年{1}, 我还是叫{0}'.format('kidd', '18')
print(s2)
结果:我叫kidd, 今年18, 我还是叫kidd

第三种:
s3 = '我叫{name}, 今年{age}, 我还是叫{name}'.format(age = '18', name = 'kidd')
print(s3)
结果:我叫kidd, 今年18, 我还是叫kidd

 

11. is系列

name = 'kidd123'
print(name.isalpha())        # 判断name是否全部以字母组成
结果:False

print(name.isdigit())        # 判断name是否全部以数字组成
结果:False

print(name.isalnum())        # 判断name是否以字母或者数字组成
结果:True

 

12. count:计数

name = 'blame kidd'
print(name.count('d'))        # 计算给定字符出现几次,可以进行切片
结果:2

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python十讲 - 第二讲:变量和基础

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python十讲 - 第二讲:变量和基础

变量字符串数字和运算符数据类型转换2.1 变量1. 变量是什么?变量,是指把程序运行的中间结果临时的存在内存里,以便后续的代码调用,其值可以修改。在python中,当变量被使用时,在内存里将产生两个动作,一是开辟指定地址的空间,二是赋予指定
2023-01-30

【Java基础教程】(二十二)Java新特性篇 · 第二讲:foreach循环——概念及优缺点、使用方式及应用场景~

Java基础教程之新特性 · foreach循环 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用及应用场景🌾 总结 1️⃣ 概念 Java的 foreach 特性最初出现在JDK 1.5中,也被称为“增强的for
2023-08-16

【Java基础教程】(三十七)常用类库篇 · 第七讲:日期时间处理类——三万字全面讲解 LocalDateTime和 DateTimeFormatter,Date、Calendar ~

Java基础教程之常用类库 ·日期时间处理类 1️⃣ 概念🔍 时间日期及处理类汇总 2️⃣ 优势和缺点3️⃣ 使用3.1 各时间日期类使用案例3.2 各时间日期处理类使用案例3.3 Date 类3.4 Ca
2023-08-16

Python基础之变量和变量实现的简单乘

上篇我们知道了关于python的一个hello world的简单程序代码,现在我们来了解关于python里面的变量,我们来了解下,变量是什么?变量:变量是为了存储程序运算过程中的一些中间结果,为了方便之后的调用,同一变量可以重新赋值。变量的
2023-01-30

【Java基础教程】(三十三)常用类库篇 · 第三讲:可变字符串支持类——解析 StringBuffer与 StringBuilder类~

Java基础教程之常用类库 · StringBuffer与 StringBuilder类 1️⃣ StringBuffer类1.1 概念1.2 特征1.3 使用 2️⃣ StringBuilder类2.1 概念及特征2.2 使用
2023-08-17

【Java基础教程】(三十)Java新特性篇 · 第十讲: Stream流——释放流式编程的效率与优雅,狂肝万字只为透彻讲清 Stream流!~

Java基础教程之新特性 · Stream流 1️⃣ 概念及特征2️⃣ 优势和缺点3️⃣ 使用3.1 语法3.2 常用API详解3.3 案例 4️⃣ 应用场景5️⃣ 使用技巧6️⃣ 并行流 ParallelStream
2023-08-16

【Java基础教程】(三十二)常用类库篇 · 第二讲:包装类 Wrapper Class——概念及用途, 自动装箱与拆箱,常用操作方法~

Java基础教程之常用类库 · 包装类 1️⃣ 概念2️⃣ 设计目的(作用)和用途3️⃣ 使用3.1 自动装箱与拆箱3.2 常用方法3.3 常用属性3.4 null和默认值 4️⃣ 注意事项🌾 总结Ὅ
2023-08-17

【Java基础教程】(三十六)常用类库篇 · 第六讲:数学运算类——全面讲解Java数学计算支持类库,BigDecimal、Math、Random、DecimalFormat...~

Java基础教程之常用类库 · 数学运算类 1️⃣ 概念🔍 数学运算类汇总 2️⃣ 优势和缺点3️⃣ 使用3.1 各数学计算支持类使用案例3.2 Math类3.3 BigDecimal类3.4 Random
2023-08-16

Python中的Pandas 时间函数 time 、datetime 模块和时间处理基础讲解

Python 中提供了对时间日期的多种多样的处理方式,主要是在 time 和 datetime 这两个模块里,这篇文章主要介绍了Python中的Pandas 时间函数 time 、datetime 模块和时间处理基础,需要的朋友可以参考下
2023-03-23

Python学习教程:0基础学Python?手把手教你从变量和赋值语句学

这篇Python学习教程将手把手教你入门学Python,从变量和赋值语句学起,前面也有专门给大家出过相关的详细教程,有需要的伙伴,可以找一下前面的教程!导读:在本文中,你会学到如何处理数字、定义与使用变量和常量,以及编写使用这些数据类型执行
2023-06-02

【Java基础教程】(三十一)常用类库篇 · 第一讲:Optional类——解锁Java的Optional操作,消灭那些隐匿的空指针,还程序世界一个安稳!~

Java基础教程之常用类库 · Optional类 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 常用操作API3.2 案例3.3 使用技巧 4️⃣ 应用场景5️⃣ 实现原理🌾 总结 1️⃣ 概念 O
2023-08-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录