人生苦短我用python之回顾学习记录笔记整理[一],windows上python3.x变量与数据类型
变量
学习过java和C等计算机语言对于变量应该都挺熟悉的把。
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问。在 Python 中 变量命名规定,必须是大小写英文,数字和 下划线(_)的组合,并且不能用数字开头。
变量命名规则:
- 变量名只能是字母,数字和下划线的任意组合
- 变量名第一个字符不能是数字 变量名区分大小写,大小写字母被认为是两个不同的字符
- 特殊关键字不能命名为变量名
- 声明变量(变量赋值)
Python 中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。赋值就相当于声明对象,赋什么类型的值变量就是什么类型的对象。在 Python 中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型(不需要像java等语言先定义变量的数据类型)。
name = "yzj"#把字符串赋值给变量name,name就创建出来了,并且是String(字符串)类型
在 Python 中,等号 = 是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。
多个变量赋值
Python 允许你同时为多个变量赋值。例如:
a = b = c = 1#变量a b c 都为Number(数字)类型 值为 1
以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。
您也可以为多个对象指定多个变量。例如:
a, b, c = 1,2,"yzj"#变量a b 是Number(数字)类型 变量 c 是String(字符串)类型
在 Python 中,通常用全部大写的变量名表示常量,如:
A=1
当然全部大写的变量名表示常量并不是语法上强制要求的习惯上的用法别这么做语法也不会报错。
数据类型
python具有很多计算机程序语言类似数据类型,也有一部分其特有的数据类型:
- 可变数据类型: Number(数字)、String(字符串)、Tuple(元组)
- 不可变数据类型: List(列表)、Sets(集合)、Dictionary(字典)
Number(数字)
Python3 支持 int、float、bool、complex(复数python特有的数字类型格式形如:实部+虚部(64.23+1j ))。
数字类型转换 - int(x) 将x转换为一个整数。
- float(x) 将x转换到一个浮点数。
- complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
- complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
数值运算:
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
String(字符串)
创建字符串可以使用单引号、双引号、三单引号和三双引号,其中三引号可以多行定义字符串,Python 不支持单字符类型,单字符也在Python也是作为一个字符串使用。
字符串的一些常见操作:
s = '学习Python'
# 切片
print(s[0], s[-1], s[3:], s[::-1])#输出 学 n ython nohtyP习学
# 替换,还可以使用正则表达式替换
print(s.replace('Python', 'Java'))#输出 学习Java
# 查找,find()、index()、rfind()、rindex()
print(s.find('J')) # 返回第一次出现的子串的下标 2
print(s.find('J', 2) ) #设定下标2开始查找 2
print(s.find('Python')) # 查找不到返回 -1
print(s.index('J')) # 返回第一次出现的子串的下标
print(s.index('P')) # 不同与find(), 查找不到会抛出异常
print(s.rfind('J')) # 返回第一次出现的子串的下标 2
print(s.rindex('J')) # 返回第一次出现的子串的下标 2
# 转大小写和判断大小写, upper()、lower()、swapcase()、capitalize()、istitle()、isupper()、islower()
print(s.lower()) # 输出'学习PYTHON',转为小写
print(s.upper()) # 输出'学习PYTHON',转为大写
print(s.swapcase()) # 输出'学习pYTHON', 大小写互换
print(s.istitle()) # 首字母是否大写 True
print(s.islower()) # 输出 是否全为小写False
print(s.isupper()) # 输出 是否全为大写False
print(s.capitalize()) #首字母大写 学习python
# 去空格,strip()、lstrip()、rstrip()
# 格式化 按照1美元($开头)=6人民币(R开头)的汇率编写一个美元和人民币的双向兑换程序
a=input()#输入
if a[0]=='R':
print("$"+"%.2f"%(float(a[1::1])/6))
if a[0]=='$':
print("R"+"%.2f"%(float(a[1::1])*6)
# 连接与分割,使用 + 连接字符串,每次操作会重新计算、开辟、释放内存,效率很低,所以推荐使用join
l = ['2017', '03', '29', '22:00']
s5 = '-'.join(l) # '2017-03-29-22:00'
s6 = s5.split('-') # ['2017', '03', '29', '22:00']
# 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'
List(列表)
类似 Java 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)
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开,组中的元素类型也可以不相同。
示例:
etters = ('a','b','c','d','e','f','g')
print(letters[0]) # 输出 'a'
print(letters[0:3]) # 输出一组 ('a', 'b', 'c')
Sets(集合)
类似 Java Set 集合接口
集合(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(字典)
类似 Java Map 集合接口
字典是一种映射类型,它的元素是键值对,字典的关键字必须为不可变类型,且不能重复。创建空字典使用 {} 。
示例:
Logo_code = {
'BIDU':'Baidu',
'SINA':'Sina',
'YOKU':'Youku'
}
print(Logo_code)
# 输出{'BIDU': 'Baidu', 'YOKU': 'Youku', 'SINA': 'Sina'}
print (Logo_code['SINA']) # 输出键为 'one' 的值
print (Logo_code.keys()) # 输出所有键
print (Logo_code.values()) # 输出所有值
print (len(Logo_code)) # 输出字段长度