【Python入门学习】

课程要求:学习Python变量与数据类型

一、变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问。在 Python 中
变量命名规定,必须是大小写英文,数字和 下划线(_)的组合,并且不能用数字开头。

变量命名规则:
(1)变量名只能是字母,数字和下划线的任意组合
(2)变量名第一个字符不能是数字
(3)变量名区分大小写,大小写字母被认为是两个不同的字符
(4)特殊关键字不能命名为变量名

变量的申明

Python 中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。之所以python中没有变量类型的说法是因为在赋值时python解释器已经推断出赋值的类型,已经动态在内存中创建了属于某种变量类型的大小。

name = 'abc'   
age = 40
str = "python学习"

变量赋值

在 Python 中,等号 = 是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。
这种变量本身类型不固定的语言称之为弱类型语言,与之对应的就是强类型语言。强类型语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如 C# 是强类型语言,这样赋值就会报错:

a = 123 # a 是整数
a = 'abc' # a 是字符串

多个变量赋值

a = b = c = 1
a, b, c = 1, 2, "neo"

常量

所谓常量就是不能变的变量,比如常用的数学常数 π 就是一个常量。在 Python 中,通常用全部大写的变量名表示常量:
但事实上 BI 仍然是个变量,Python 根本无法保证 BI 不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改,语法也不会报错。

PI = 3.14

二、数据类型

Python3 的六个标准数据类型中:
(1)不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
(2)可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

Number

Python3 支持 int、float、bool、complex(复数)。
数字类型是顾名思义是用来存储数值的,需要记住的是,有点和 Java 的字符串味道差不多,如果改变了数字数据类型的值,将重新分配内存空间。
Python 支持三种不同的数值类型:
(1)整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。
(2)浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

(3)复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

counter = 100          # 整型变量
miles   = 1000.0       # 浮点型变量
name    = "test"     # 字符串
 
print (counter)
print (miles)
print (name)

数值运算:

print (5 + 4)  # 加法   输出 9
print (4.3 - 2) # 减法   输出 2.3
print (3 * 7)  # 乘法  输出 21
print (2 / 4)  # 除法,得到一个浮点数    输出 0.5
print (2 // 4) # 除法,得到一个整数 输出 0
print (17 % 3) # 取余   输出 2
print (2 ** 5) # 乘方  输出 32

字符串

创建字符串可以使用单引号、双引号、三单引号和三双引号,其中三引号可以多行定义字符串,Python 不支持单字符类型,单字符也在Python也是作为一个字符串使用。
我们定义一个 s='python’语句,它在计算机中的执行顺序是先在内存中创建一个字符串 Python ,在程序栈寄存器中创建一个变量 s,最后把 Python 的地址赋给s 。
再来看看字符串的一些常见操作:

s = '学习Python'
# 切片
s[0], s[-1], s[3:], s[::-1]	# '学', 'n', 'ython', 'nohtyP的习学'
# 替换,还可以使用正则表达式替换
s.replace('Python', 'Java')	# '学习Java'
# 查找,find()index()rfind()rindex()
s.find('P')			# 3, 返回第一次出现的子串的下标
s.find('h', 2)			# 6, 设定下标2开始查找
s.find('23333')			# -1, 查找不到返回-1
s.index('y')			# 4, 返回第一次出现的子串的下标
s.index('P')		# 不同与find(), 查找不到会抛出异常
# 转大小写, upper()lower()swapcase()capitalize()istitle()isupper()islower()
s.upper()			# '学习PYTHON'
s.swapcase()			# '学习pYTHON', 大小写互换
s.istitle()			# True
s.islower()			# False
# 去空格,strip()lstrip()rstrip()
# 格式化
s1 = '%s %s' % ('Windrivder', 21)	# 'Windrivder 21'
s2 = '{}, {}'.format(21, 'Windridver')	# 推荐使用format格式化字符串
s3 = '{0}, {1}, {0}'.format('Windrivder', 21)
s4 = '{name}: {age}'.format(age=21, name='Windrivder')
# 连接与分割,使用 + 连接字符串,每次操作会重新计算、开辟、释放内存,效率很低,所以推荐使用join
l = ['2017', '03', '29', '22:00']
s5 = '-'.join(l)			# '2017-03-29-22:00'
s6 = s5.split('-')			# ['2017', '03', '29', '22:00']

另外还有一点需要注意的是字符串编码,所有的 Python 字符串都是 Unicode 字符串,当需要将文件保存到外设或进行网络传输时,就要进行编码转换,将字符转换为字节,以提高效率。

# encode 将字符转换为字节
str = '学习Python'
print (str.encode())			# 默认编码是 UTF-8  输出:b'\xe5\xad\xa6\xe4\xb9\xa0Python'
print (str.encode('gbk'))      # 输出  b'\xd1\xa7\xcf\xb0Python'
# decode 将字节转换为字符
print (str.encode().decode('utf8'))   # 输出 '学习Python'
print (str.encode('gbk').decode('gbk'))             # 输出 '学习Python'

Tuple

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开,组中的元素类型也可以不相同。

letters = ('a','b','c','d','e','f','g')
print(letters[0])  # 输出 'a'
print(letters[0:3])  # 输出一组 ('a', 'b', 'c')

这里的[0:3]代表索引从0到3之间包含的元素,所以不包括索引为3这个元素

List

列表是写在方括号 [] 之间、用逗号分隔开的元素列表,列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套),列表中的元素是可以改变。

Weekday = ['Monday','Tuesday','Wednesday','Thursday','Friday']
print(Weekday[0])   # 输出 Monday

#list 搜索
print(Weekday.index("Wednesday"))

#list 增加元素
Weekday.append("new")
print(Weekday)

# list 删除
Weekday.remove("Thursday")
print(Weekday)

Sets

集合(set)是一个无序不重复元素的序列,使用大括号 {} 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 {} ,因为 {} 是用来创建一个空字典。

集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:

a_set = {1,2,3,4}
# 添加
a_set.add(5)
print(a_set)  # 输出{1, 2, 3, 4, 5}
# 删除
a_set.discard(5)
print(a_set)  # 输出{1, 2, 3, 4}

Dictionary

字典是一种映射类型,它的元素是键值对,字典的关键字必须为不可变类型,且不能重复。创建空字典使用 {} 。

Logo_code = {
 'BIDU':'Baidu',
 'SINA':'Sina',
 'YOKU':'Youku'
 }
print(Logo_code)
# 输出{'BIDU': 'Baidu', 'YOKU': 'Youku', 'SINA': 'Sina'}
print (Logo_code['SINA'])       # 输出键为 'SINA' 的值
print (Logo_code.keys())   # 输出所有键
print (Logo_code.values()) # 输出所有值
print (len(Logo_code))  # 输出字段长度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火星wen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值