python基础教程学习日志

本文详细介绍了Python的基础数据类型,包括字符串、列表和字典的关键操作,如字符串的拼接、转义、格式化,列表的拼接和方法,以及字典的方法,如get、setdefault和update。内容涵盖了常用的方法和示例,旨在帮助初学者一周内掌握Python基础知识。
摘要由CSDN通过智能技术生成

目录

学习目标:

学习内容:

基础数据类型:

字符串:

        字符串方法:

        字符串拼接:

        字符串转义:

        格式化添加:

        标准输出:

列表:

        列表拼接:

        列表方法:

字典:

        字典方法:

学习时间:

学习产出:


学习目标:

  • 一周掌握 python 入门知识

学习内容:

基础数据类型:

数据结构是否可变是否重复是否有序定义符号
列表(list)可变可重复有序[ ]
元组(tuple)不可变可重复有序( )
字典(dict)可变可重复无序{key:value}
集合(set)可变不可重复无序{ }

字符串:

        字符串方法:

        Test1:

        1.字符串中指定字符串段替换:replace( )

string = "my name is unknown"
string = string.replace('unknown','ikun')
print(string)
my name is ikun

        2.字符串切分,根据符号切分字符串 :split( )

string = "AaBaCaDaEaF"
print(string.split(' '))
print(string.split())
print(string.split('a'))
print(string.split('a', 2))
print(string.split('a', 3))
['AaBaCaDaEaF']
['AaBaCaDaEaF']
['A', 'B', 'C', 'D', 'E', 'F']
['A', 'B', 'CaDaEaF']
['A', 'B', 'C', 'DaEaF']

        Test03: lower( ):返回将字符串中所有大写字符转换为小写后生成的字符串。

        Test04: upper( ):返回小写字母转为大写字母的字符串。

        Test05: capitalize( ):将字符串的第一个字母变成大写,其余字母变为小写

str1 = "i Love python"
str2 = " i Love python" #字母i前有空格
str3 = "I Love python"
print(str1.capitalize())
print(str2.capitalize())
print(str3.capitalize())
I love python
i love python
I love python

        Test06: count( ):该方法返回子字符串在字符串中出现的次数。

        语法:str.count(sub, start= 0,end=len(string))

str = "this is string example....wow!!!"

sub = "i"
print("str.count(sub, 4, 40) : ", str.count(sub, 4, 40))
sub = "wow"
print("str.count(sub) : ", str.count(sub))
str.count(sub, 4, 40) :  2
str.count(sub) :  1

        Test07: startswith( ):Python startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

        语法:str.startswith(str, beg=0, end=len(string))

        Test08: endswith( ):判断字符串是否以指定字符或子字符串结尾。

        语法:str.endswith("suffix", start, end)

#元组案例
file = "python.txt"
if file.endswith("txt"):
    print("该文件是文本文件")
elif file.endswith(("AVI","WMV","RM")):
    print("该文件为视频文件")
else:
    print("文件格式未知")

        Test09: splitlines( ):按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

str1 = 'ab c\n\nde fg\rkl\r\n'
print str1.splitlines();
 
str2 = 'ab c\n\nde fg\rkl\r\n'
print str2.splitlines(True)
['ab c', '', 'de fg', 'kl']
['ab c\n', '\n', 'de fg\r', 'kl\r\n']

        Test10: strip( ):用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

        注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

        lstrip( )/rstrip( ):仅删除左/右

str = "123abcrunoob31221"
print (str.strip( '12' ))  # 字符序列为 12
3abcrunoob3
        字符串拼接:

        Test2:将两字符串拼接,两种方法

        1. 直接通过(+)操作符拼接

s = 'Hello'+' '+'World'+'!'
print(s)
Hello World!

        2.直接拼接

"let's say " '"hello world!"'
'let\'s say "hello world!"'
        字符串转义:

        Test3 "\n","\r","\t"

        "\n" 换行

>>> print('Hello, \nworld!')

Hello,
world!

        "\r" 将光标移到一行的开始,覆盖

>>> print('Hello, \rworld!')

world!

        "\t" 制表符

>>> print('Hello, \tworld!')

Hello,  world!
#打印结果中间隔了一个制表符
        格式化添加:

        Test01:  join( )用于将序列中的元素以指定的字符连接生成一个新的字符串。

symbol = "-";
seq = ("a", "b", "c"); # 字符串序列
print symbol.join( seq );

#输出
a-b-c
        标准输出:

        Test02:  format( )一种格式化字符串的函数,增强了字符串格式化的功能。

        基本语法是通过 {} 和 : 来代替以前的 % 

>>> "{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'
# 通过字典设置参数
site = {"name": "张三", "age": "20"}
print("名字:{name}, 年龄 {age}".format(**site))

# 通过列表索引设置参数
my_list = ['张三', '20']
print("名字:{0[0]}, 年龄 {0[1]}".format(my_list))  # "0" 是必须的

#输出
名字:张三, 年龄 20
名字:张三, 年龄 20

列表:

        列表拼接:

        Test4: 列表拼接方法

  • 最简单的使用“+”;
  • 最意想不到的使用切片赋值的方法;
>>> list1 = [1, 2, 3]
>>> list2 = [4, 5, 6]
>>> id(list1)
2923688410176
>>> list1[len(list1):len(list1)] = list2
>>> list1
[1, 2, 3, 4, 5, 6]
>>> id(list1)
2923688410176
  • 使用列表自带的extend方法
  • += 效果与extend()一样,向原列表追加一个新元素,在原有列表上增加
        列表方法:

        Test5: 列表填充方法 (append和extend区别)

lst1 = ['a', 'b', 'c']
lst2 = ['d', 'e', 'f']
lst3 = ['a', 'b', 'c']
lst1.append(lst2)
lst3.extend(lst2)

print("append方法:{0}\nextend方法:{1}".format(lst1, lst3))


#结果
append方法:['a', 'b', 'c', ['d', 'e', 'f']]
extend方法:['a', 'b', 'c', 'd', 'e', 'f']

        Test6: 列表删除元素方法 (pop()和remove()区别)

list1 = [1, 3, 6, 7, 8]
print('remove返回值:', list1.remove(3))  # 对列表元素进行搜索删除,而不是下表
print('处理结果:', list1)
list2 = [1, 3, 6, 7, 8]
print('pop返回值:', list2.pop(3))  # 对列表下表进行检索删除
print('处理结果:', list2)
dict1 = {'Abby': 21, 'Bob': 22, 'cindy': 21}
print('pop字典返回值:', dict1.pop('Bob'))
print('处理结果:', dict1)


#结果
remove返回值: None
处理结果: [1, 6, 7, 8]
pop返回值: 7
处理结果: [1, 3, 6, 8]
pop字典返回值: 22
处理结果: {'Abby': 21, 'cindy': 21}

        Test8: 列表求长 len( )/for循环…不做赘述

        Test9: 列表去重  利用set+索引,最简单顺序不变方法

        更多方法参照链接博客

        Test012: 列表排序 sort( )/sorted()

lst1 = [2, 5, 8, 9, 6, 7, 1]
print('sorted方法:\t', sorted(lst1))
lst1.sort()
print('sort方法:\t', lst1)


#结果
sorted方法:	 [1, 2, 5, 6, 7, 8, 9]
sort方法:	 [1, 2, 5, 6, 7, 8, 9]

        sorted(list)返回一个对象,可以用作表达式。原来的list不变,生成一个新的排好序的list对象。list.sort() 不会返回对象,改变原有的list。

        Test013: 列表切片 利用下标索引对列表单元进行访问修改

alist = [3, 4, 6, 7, 2, 10, 16, -8]
alist_x = alist[1:6:2]
print(alist_x)
# 输出结果:[4, 7, 10]

alist[1:6:2] = [28, 38, 48]  # 修改元素值
print(alist)
# 输出结果:[3, 28, 6, 38, 2, 48, 16, -8]

        Test014: list在循环遍历中,删除指定数据项

a = [1,2,3,4,5,6,7,8]
print(id(a)) 
print(id(a[:])) 
for i in a[:]:
    if i>5:
        pass
    else:
        a.remove(i)
    print(a)
print('-------------------------')
print(id(a))


#结果
2079029867328
2079029867072
[2, 3, 4, 5, 6, 7, 8]
[3, 4, 5, 6, 7, 8]
[4, 5, 6, 7, 8]
[5, 6, 7, 8]
[6, 7, 8]
[6, 7, 8]
[6, 7, 8]
[6, 7, 8]
-------------------------
2079029867328

        一个比较有意思的情况,讲了遍历列表时删除元素的正确做法

字典:

        字典方法:

        Test10:   setdefault()、get() 方法

dict1 = {'name': '张三', 'age': 18}
print(dict1.get('name'))

# 使用get()函数 birthday是不存在于字典中的键
print(dict1.get('birthday'))

# 使用setdefault()函数 键’name‘存在于字典中的情况
dictAdd = dict1.setdefault('name', 'unknown')
print(dictAdd)
print(dict1)

# 使用setdefault()函数 键’birthday‘不存在于字典中的情况
dictAdd2 = dict1.setdefault('birthday', '2023年7月11日')
print(dictAdd2)
print(dict1)


#结果
张三
None
张三
{'name': '张三', 'age': 18}
2023年7月11日
{'name': '张三', 'age': 18, 'birthday': '2023年7月11日'}

        Test015: keys()、values() 和 items() 方法

a = {'数学': 95, '语文': 89, '英语': 90}
print(a.keys())  # 以列表返回一个字典所有的键
print(a.values())  # 以列表返回一个字典所有的值
print(a.items())  # 以列表返回可遍历的(键, 值) 元组数组


#结果
dict_keys(['数学', '语文', '英语'])
dict_values([95, 89, 90])
dict_items([('数学', 95), ('语文', 89), ('英语', 90)])

        Test016: update() 方法

dict1 = {'Name': 'Zara', 'Age': 7}
dict2 = {'Sex': 'female'}

#把字典 dict2 的键/值对更新到 dict1 里
dict1.update(dict2)
print("Value : %s" % dict1)


#结果
Value : {'Name': 'Zara', 'Age': 7, 'Sex': 'female'}

        Test017: pop() 和 popitem() 方法:

# Pop方法属于字典自带的方法,只需要传入一个参数,这个参数是字典的键,就可以对字典中的某个键值对进行删除。
dic1 = {"a": "C", "b": "Python", "c": "RPA", "d": "艺赛旗"}
dic1.pop("c")
print("dic1:", dic1)

# 这个方法不需要传入参数,就可以直接对字典中的键值对进行删除,并且每次删除的都是最后一个。
dic2 = {"a": "C", "b": "Python", "c": "RPA", "d": "艺赛旗"}
dic2.popitem()
print('dic2:', dic2)


#结果
dic1: {'a': 'C', 'b': 'Python', 'd': '艺赛旗'}
dic2: {'a': 'C', 'b': 'Python', 'c': 'RPA'}

        Test018: copy(),copy.deepcopy() 方法

import copy
dict1 = {'user': 'runoob', 'num': [1, 2, 3]}

dict2 = dict1  # 浅拷贝: 引用对象
dict3 = dict1.copy()  # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用
dict4 = copy.deepcopy(dict1)  #  深拷贝:全部深拷贝

# 修改 data 数据
dict1['user'] = 'root'
dict1['num'].remove(1)

print(dict1)
print(dict2)
print(dict3)
print(dict4)


# 结果
{'user': 'root', 'num': [2, 3]}
{'user': 'root', 'num': [2, 3]}
{'user': 'runoob', 'num': [2, 3]}
{'user': 'runoob', 'num': [1, 2, 3]}

学习时间:


学习产出:

  • 学习笔记
  • CSDN 技术博客 1 篇

本文仅用于学习笔记
参考资料:《Python语言及其应用》 菜鸟教程Python
如有侵权请联系删除

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值