栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python学习(一)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python学习(一)

Python学习

自学推荐学习网站:https://www.liaoxuefeng.com/wiki/1016959663602400

基本数据类型
print("hello world")#第一个python程序helloworld
# 注释
# 单行注释(#)
''' 多行注释一般用于文档说明(三个单引号或者双引号)
多行注释
多行注释
'''
"""
多行注释
多行注释
"""

# 变量命名规则:大小写字母、数字、_,不能以数字开头,不能是关键字
# 查看Python中的关键字
import keyword
print(keyword.kwlist)

# 定义即赋值
# 定义时不需要指定类型,可以自动推断
a = 1
# 查看类型 使用type函数
print(type(a))

# Python是动态数据类型
a = 1.1
print(type(a))

a = "abc"
print(type(a))

# print函数: 打印到控制台
# 打印多个值
print(a, 1, 2, 3, 4, 5, 6, 7)

# 不换行打印
print("hello ", end="")
print("world")

# 5大基本数据类型:
# 整型 int、浮点 float、字符串 str、布尔 bool、空类型 NoneType
int1 = 10
print(int1, type(int1))

float1 = 10.111
print(float1, type(float1))

# 不严格区分单双引号 都是str
# python没有字符类型(java中是char)
str1 = 'abcdefg'
str2 = "abcdefghijklmn"
str3 = 'a'
print(str1, type(str1))
print(str2, type(str2))
print(str3, type(str3))

# 首字母大写
bool1 = True
bool2 = False
print(bool1, type(bool1))
print(bool2, type(bool2))

none = None
print(none, type(none))

# 类型的转换:
# 要转成什么类型就调用对应的 类型方法
# int()、float()、str()、bool()
# 注意要转换的值 必须符合要求
str4 = '123'
# str4 = 'abc'
print(str4, type(str4))
str2int = int(str4)
print(str2int, type(str2int))

str2float = float(str4)
print(str2float, type(str2float))

str2bool = bool(str4)
print(str2bool, type(str2bool))

# 字符串常见的操作
str1 = 'java scala python hadoop hive hbase spark'
print(str1.split(' '))  # 按照指定的分隔符进行切分 返回一个list

# 切片:相当于Java中的substring
# [起始位置:结束位置:步长]
# [起始,结束)  左闭右开
# 起始位置默认是第一个字符 结束位置默认最后一个字符 步长默认为1
print(str1[11:17])
print(str1[-30:-24])

# 步长表示 隔几个元素取一次
print(str1[11:17:2])  # pto
print(str1[11:17:3])  # ph
print(str1[11:17:4])  # po

print(str1[11:17:-1])  #
print(str1[16:10:-1])  #

# 倒转字符串
print(str1[::-1])

# 索引
# 注意:索引越界的问题
print(str1[6])
print(str1[-7])  # 负数索引:从右往左数第几个元素

# 查看字符串的长度
print(len(str1))
# t (tab) 制表符 n 换行符 r 回车符
str2 = '   t n r java scala python hadoop hive hbase spark  t t n'
print(str2)
print(str2.strip())  # 去除字符串左右两边的隐藏字符

# 格式化字符串
# 4 * 3 = 12
a = 4
b = 3
print(a, '*', b, '=', a * b)

# 定义一个模板
# {} * {} = {}
str_format = '{} * {} = {}'
print(str_format.format(a, b, a * b))

# %d 表示数字
# %s 表示字符串
# %f 表示小数
# %d * %d = %d
print('%d * %d = %d' % (a, b, a * b))

# 控制输出三位小数
f1 = 1.234567
print('%.3f' % f1)
print("*" * 50)

# 算术运算
i = 10
j = 3
print(i + j)
print(i - j)
print(i * j)
print(i / j)
print(i % j)  # 取余
print(i ** j)  # i的j次方
print(10 // 6)  # 对结果向下取整

print(2 ** 3 ** 2)  # 2 的 9 次方
print(10 // 3 // 2)  # 从前往后算

# 逻辑运算
# 与或非 and or not
print(True & True)  # True
print(True and True)  # True
print(True & False)  # False
print(True | False)  # True
print(True or False)  # True
print(True ^ False)  # True
print(not True)  # False
print(not False)  # True
四大数据容器
# Python数据容器 相当于Java中的集合
# 四大数据容器:
# 列表list、元组tuple、字典dict、集合set

''' 一、列表list
 特点:
 1、list中的每个元素的类型可以不唯一
 2、list中的元素可以重复
 3、list是可变的,元素可以修改
 4、list是有序的
'''
# 定义:
list = [1, 2, 2, 3, 3, 3, 4, 'a', 'b', 'c', 'd', 1.1, 1.2, True, False]
print(list, type(list))

# list 常见操作:
# 通过下标(索引值 index)查找元素
print(list[7])  # 打印输出a

# 切片
# [起始位置:结束位置:步长]
print(list[7:11])  # 打印'a', 'b', 'c', 'd'
print(list[-4:])  # 右边数第四个遍历输出到最后
# 反转
print(list[::-1])  # 步长-1增长输出(实现列表元素反转)

# 修改元素
# 'a'=>'A'
list[7] = 'A'
print(list)  # [1, 2, 2, 3, 3, 3, 4, 'A', 'b', 'c', 'd', 1.1, 1.2, True, False]

# 增加元素(append(),insert())
list.append('last')
list.insert(6, 5.5)
print(list)

# 删除元素(remove(),del)
list.remove(5.5)  # 根据指定的值移除元素 只会移除一次
del list[6]  # 删除索引为6的值
print(list)

# 排序
list2 = [1, 5, 4, 2, 10, 3, 7, 6, 9, 8]
list2.sort(reverse=True)  # 降序 从大到小
print(list2)
list2.sort(reverse=False)  # 升序 从小到大
print(list2)

# 合并多个list
list3 = [1, 2, 3, 4, 5]
print(list + list2 + list3)  # +不会改变原有的list
# [1, 2, 2, 3, 3, 3, 'A', 'b', 'c', 'd', 1.1, 1.2, True, False, 'last', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5]
list2.extend(list3)  # 会对list2造成修改
print(list2)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5]

# 反转
list2.reverse()
print(list2)

# 统计元素出现的次数
print(list2.count(1))

# 清空列表
list2.clear()
print(list2)

print("*" * 50)
# tuple元组 (不可变)
# 特点:
# 1、tuple中的每个元素的类型可以不唯一
# 2、tuple中的元素可以重复
# 3、tuple是不可变的
# 4、tuple是有序的
# 定义:
tuple1 = (1, 1, 1, 2, 2, 3, 4, 5, 6, 'a', 'b', 'c', 1.1, True)
print(tuple1, type(tuple1))

# 元组不支持修改
# tuple1[9] = 'A'

# 取元素
print(tuple1[9])

print("*" * 50)
# 集合set (元素不可以重复)
# 特点:
# 1、set中的每个元素的类型可以不唯一
# 2、set中的元素不可以重复 会自动去重
# 3、set是可变的
# 4、set是没有顺序的
# 定义
set1 = {1, 1, 1, 2, 2, 2, 3, 4, 5, "abc", True}
print(set1, type(set1))

# print(set1[0]) # 无序 无法通过索引的方式取元素
set1.pop()
print(set1)

set1.add(2)
set1.add(2)
set1.add(3)
set1.add(6)
print(set1)

# 集合的运算
# 交集 并集 差集 ......
set2 = {1, 2, 3, 4, 5, 6}
set3 = {4, 5, 6, 7, 8, 9}
print(set2 & set3)
print(set2 | set3)
print(set2 - set3)

# 字典 dict 相当于Java中Map
# 特点:
# 1、dict中的每一个元素都是k:v格式的
# 2、dict不支持使用index获取元素,都是通过key取value
# 3、dict是可变的
# 4、dict的key不能重复,是唯一的,key必须是不可变的(基本数据类型、tuple)
# 5、如果key中 1 和 True 以及 0 和 False 同时存在 会进行覆盖
# 6、查询速度不会随着元素的增多而变慢
# 7、dict中value的类型可以是任意的
# 定义
dict1 = {
    'k1': 'v1',
    'k2': 'v2',
    'k2': 'vv2',
    0: '0',
    1: '1',
    2: '2',
    (1, 2, 3): 'tuple 1,2,3',
    # [4,5,6]:'list 4,5,6'
    True: 'True',
    False: 'False',
    # {'k1':'v1'}:'dict v'
    'kk2': 1,
    'kk3': 1.1,
    'kk4': [1, 2, 3],
    'kk5': {
        'kkk5': {
            'kkkk5': 'vvvv5'
        }
    }

}
print(dict1, type(dict1))

# print(dict1[0]) # 不支持通过下标取元素
# 通过key取value
print(dict1['k1'])
dict1['k1'] = 'vv1'
print(dict1)
# 推荐使用get获取元素
print(dict1.get('k1'))
print(dict1['k1'])
# print(dict1['kk1'])
print(dict1.get('kk1', '如果key不存在就返回'))
print(dict1.get('kk5').get('kkk5').get('kkkk5'))

# 常见的操作
print(dict1.keys())
print(dict1.values())
print(dict1.items())

# 遍历数据容器
# for 变量名 in 数据容器
list1 = [1, 2, 3, 4, 5]
for i in list1:
    # 前面必须有4个空格(语法)
    print(i)
# 定义只有一个元素的元组时要加上,
tuple1 = (1,)
print(tuple1, type(tuple1))

tuple2 = (1, 2, 3, 4, 5)
for i in tuple2:
    print(i)

set1 = {1, 1, 1, 2, 3, 4, 5, 5, 6}
for i in set1:
    print(i)  # 打印去重后的结果

dict1 = {
    'k1': 'v1',
    'k2': 'v2',
    'k3': 'v3'
}

# 对key进行遍历
for key in dict1:
    print(key, dict1.get(key))

for kv in dict1.items():
    print(kv[0], kv[1])

for k, v in dict1.items():
    print(k, v)

# 创建一个 1~10的list
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(list1)

# 创建一个 1~100的所有的奇数list
# range(起始位置:结束位置:步长)函数
list100 = []
for i in range(1, 101, 1):
    list100.append(i)
print(list100)

# 列表推导式
print([i for i in range(1, 101, 1) if i % 2 == 1])

# join 方法 与 split方法相反
str1 = 'java,scala,python'
list3 = str1.split(",")
print(list3, type(list3))
str2 = "t".join(list3)
print(str2, type(str2))

# 9 * 9 乘法表
print("n".join(["t".join(["{} * {} = {}".format(i, j, i * j) for j in range(1, i + 1)]) for i in range(1, 10)]))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656287.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号