• Python实训-15天-博客汇总表

目录

1、列表

2、字符串

3、字符集

4、练习题


基础提升(常用操作):

  1. list集合操作 (切片)
  2. str字符串操作
  3. dict字典操作
  4. 函数的定义

对照java,回顾java中的内容(java的基本功增强)

1、列表

# list 切片
# 从list中截取某一部分
a = [1, 2, 3, 4, 5, 6, 7, 8];print(a[1:3]);  # [2, 3] 包头不包尾,从下标1截取到下标3
print(a[1:]);  # [2, 3, 4, 5, 6, 7, 8] 截取到最后【去掉第一个元素】
print(a[:-1]);  # [1, 2, 3, 4, 5, 6, 7] 从头,截取到最后一个,但是不包含最后一个【去掉最后一个元素】
print(a[1:-1]);  # [2, 3, 4, 5, 6, 7] 去头尾
print(a[:]);  # [1, 2, 3, 4, 5, 6, 7, 8] 一份拷贝,相当于a.copy()# 从后向前切,[87654321]
print(a[-1:1])  # [] 空,不支持这样写来从后向前切的
print(a[-1:1:-1])  # [8, 7, 6, 5, 4, 3] 三个位置,最后一个弄一个负数,表示从后往前切
print(a[::-1]);  # [8, 7, 6, 5, 4, 3, 2, 1] 实现倒序
print(a[::-2]);  # [8, 6, 4, 2],语法很灵活
print(a[::2]);  # [1, 3, 5, 7]

2、字符串

问,Java中的List或Array有没有截取呢?
#List有,subList,从某个位置截取到另一个位置
ls.subList(0,3); 截取0-3
#Array有,copyOf,从头截取,截取n个长度
Arrays.copyOf(sa,10); 截取sa的前10个元素

# 字符串也有切片,截取字符串的某个部分,使用和list是一样的。s = "123456789abcdefg";
print(s[1:3])  # 23
print(s[1:-1])  # 23456789abcdef
print(s[-1:1:-1])  # gfedcba9876543
print(s[:-1])  # 123456789abcdef
print(s[1:])  # 23456789abcdefg

#java中的字符串有截取吗?
    s.substring(1); #从1到末尾
    s.substring(1,10); #从1到10,不包含10
    
#js中字符串有截取吗?有:substr、substring。(基本功是否扎实)

对照java,字符串会有:截取、替换、分割、大小写转换、查找、去空格等操作,我们可以通过dir函数,来看有哪些函数可以调用,对照功能即可。
print(dir(""))
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

a = "abcdefg 123456"
print(a.capitalize()) # Abcdefg 123456
print(a.center(66)); #                           abcdefg 123456                          
#小尝试自己完成

3、字符集

# 切片截取
# 分割
a = "abcdefg 123456"
b = a.split(" ");  # 使用空格分割
print(b)  # ['abcdefg', '123456']# c = a.split(""); # python不支持,报错
# java: ["a","b","c","d"......"5","6"]
# print(c)
# python
# 内置函数list,将字符串转为list
c = list(a);
print(c)  # ['a', 'b', 'c', 'd', 'e', 'f', 'g', ' ', '1', '2', '3', '4', '5', '6']# 计数
print(a.count("a"));  # 1# 编码  encode
a = "我";
e1 = a.encode();  # 将a,通过默认编码(utf-8)后,得到的字节序列
print(e1);  # b'\xe6\x88\x91'#  byte:字节; 整体为一个字节序列
#  1个汉字,通过utf-8编码后,得到3个字节
e2 = a.encode('gbk');  # 将a,通过gbk后,得到的字节序列
print(e2);  # b'\xce\xd2'
# 一个汉字通过gbk编码,得到两个字节

acsii码 ----》ISO8859-1  单字节 (8位),只支持256个字符
GBK码表---》GBK编码---》1字节(ascii中的英文字符)或 两字节 (中日韩的文字)    2w+
Unicode码表----》utf-8编码 ---》变长(1-6字节不等) (英文字符1个字节,汉字大多是3个字节)  14w+ (应用最广泛,utf-8)

编码有什么作用?
计算机只能存数字(0,1这样的二进制),那么对于文字语言符号等这些内容,该如何在计算机中表示呢

编码/码表 !
文字符号《-----码表-----》数字
通过码表,就可以完成数字和文字符号的互相转换

文字符号---编码/encode----》数字
文字符号《------解码/decode---------数字

当我们存数据、传输数据时,都需要将字符通过编码转换成数字,才能进行传输;
读取数据,或接收数据时,再通过解码,还原展示原本的文字符号

(观察一个txt文本文档的占用空间)
uf = b'\xe6\x88\x91'
gb = b'\xce\xd2';

print(uf.decode());# 默认utf-8解码 我
print(gb.decode('gbk')) # 我

java中有没有类似的encode和decode的转换?
    字符串--getBytes(编码)-->字节
    字节---new String(数组,编码)--->字符串

字符串和数字互相转换
    -java字符串和数字不能直接转,需要通过插入,
        数字---char---string
         (参照的是unicode码表)
        String str = "";
        Random r = new Random();
        for(int i=0;i<10;i++) {
            str = str+ (char)(r.nextInt(26)+65);
        }
        System.out.println(str);
    
    -python没有char类型,单个字符串,就好像表示char一样
        有两个内置函数可以使用
        (参照的是unicode码表)
        chr :数字---》字符
        ord:字符-》数字

4、练习题

# 请生成长度为10的字符串,内容为随机的26个字母(A-Z)
import random

s = "";
for i in range(10):
    s = s + chr(random.randint(65, 90));

print(s);

习题1:

#生成100次0~9范围的整数
#将这些数字合并成一个大的字符串,打印出来
#统计这些数字中,每个数字出现多少次(例如,有几个0,几个1,几个2。。。。),打印出来
#找出出现次数最多的是哪个数字。

import random

s = "";
time = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for i in range(100):
    number = random.randint(0, 9);
    time[number] += 1;
    s += str(number);
print("数字0-9出现的次数分别为:", end="")
for i in time:
    print(i, end="、")
print("\n" + s)

习题2:打印emoji字符表。

for i in range(0x1f600, 0x1f64f):
    print(chr(i), i, end=" ")
    if i % 10 == 0:
        print()

Python实训day02am【列表、字符串、字符集】相关推荐

  1. Python实训-15天-博客汇总表

    目录 1.课程安排 1.1.课程介绍 1.2.课程目标 2.课件 2.1.课件and录屏 2.2.练习and案例and作业 3.实训博客笔记 第1周-week1 day01 day02 day03 d ...

  2. Python实训day03pm【列表生成式、非文本文件的读写与复制、文本文件读写练习】

    Python实训-15天-博客汇总表 目录 1.列表生成式 2.列表的嵌套 2.1.习题1 2.2.习题2 3.非文本文件的读写 3.1.读取文件的大小 3.2.复制文件 4.课堂练习 列表生成式 非 ...

  3. Python实训day01pm【练习题、文件编写、列表的使用】

    Python实训-15天-博客汇总表 目录 Jupyter中文用户名导致无法运行的问题 练习题 练习1 练习2 Python文件编写注意事项 Python列表 list:有序列表 Jupyter中文用 ...

  4. Python实训day12am【网络爬虫大作业简略解析:动态生成html页面、数据写入Excel】

    Python实训-15天-博客汇总表 目录 1.HTML页面设计 2.生成每个城市的HTML页面 2.1.HTML页面代码(weatherTemplate.html) 2.2.实例代码-动态生成htm ...

  5. Python实训day09am【Pandas、Series、DataFrame数据帧】

    Python实训-15天-博客汇总表 目录 1.Pandas 1.1.安装Pandas库 1.2.两种数据对象 2.一列数据Series 2.1.获取Series与数据个数 2.2.切片-loc-il ...

  6. Python实训day03am【sort、函数式编程、过滤器、lambda、文本文件读写】

    Python实训-15天-博客汇总表 目录 1.字典练习题 2.排序sort 2.1.Java中的sort 2.2.sort与lambda 3.函数式编程与过滤器filter 4.Java中的lamb ...

  7. python实训day1

    今日作业: name=' aleX' print(name) print(name.strip()) print(name.startswith('al')) print(name.endswith( ...

  8. 初学Python实训心得以及一个爬虫例子

    了解Python,学会Python,实战python 通过这次Python实训,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自我动手做项目的潜力.本次实训是对我潜 ...

  9. Python实训day14pm【Python网络爬虫综合大作业-参考解析】

    Python实训-15天-博客汇总表 题目:天气数据的爬取和统计 大作业题目思路引导:定时爬取每个地级市的实时天气状况.存入excel中.为每个城市生成html展示.历史excel文件以每日为单位归档 ...

最新文章

  1. java int类源码,一起学JDK源码 -- Integer类
  2. Atitit 桌面软件跨平台gui解决方案 javafx webview
  3. IOS开发之UI基础LOL英雄展示-15
  4. nutshell_Nutshell中的Java 8语言功能-第1部分
  5. idea查询类_Spring Security入门(三): 基于自定义数据库查询的认证实战
  6. [转]VirtualBox安装CentOS7
  7. CentOS 6.5下安装Docker
  8. OpenDDS架构说明
  9. opencv实现人脸识别中过曝光人脸图片处理
  10. Android自定义View里面获取宽高及dp和px间的转换
  11. JBX IDE中文输入
  12. nodejs调用阿里云盾身份证二要素验证
  13. 【How2RE】 UPX壳及脱壳方式
  14. 计算机学校校歌,【2018十大最受欢迎高校校歌】_最受欢迎的十大高校校歌
  15. 地震周边地区的摇篮生活和地震综合症
  16. 期望、方差、标准差、协方差、相关系数、协方差矩阵、残差、残差平方和(SSE)、标准化残差,残差分析
  17. Qt与脚本初探:QtScript, PyQt, PythonQt, Qt Jambi
  18. 趣小面,陆正耀的另一副底牌
  19. tf.Variable() 和 tf.get_variable(),tf.name_scope() 和 tf.variable_scope()
  20. 阿里云对象存储oss多少钱?

热门文章

  1. fckeditor 漏洞php,fckeditor上传漏洞利用总结
  2. c++ 函数过长 拆分_实用EXECL办公函数 【多条件排名】
  3. c语言中的fock方法输出hello,涉及fork()的C程序输出的说明
  4. oss图片上传api_交互式核保系统:api明细:图片上传oss接口
  5. curl 慢 不稳定_Node.js VM 不完全指北
  6. php隐藏表单提交表单提交表单_表单提交及php处理表单数据的实例
  7. 二十二、 深入Python的进程和线程(上篇)
  8. 三十六、Scrapy 中的复写默认管道和Rule扩展
  9. ICLR 2022 | 香侬科技提出基于图神经网络的语义理解模型,获单项满分
  10. 送书福利 | 浙江大学陈华钧教授新作,全面梳理知识图谱技术体系