python入门知识点-1
字符串的常见操作
# # 修改大小写
# # capitalize()将字符串的首字母大写,只能将首字母大写,其他字母都改变不了
# print('hello'.capitalize())
# print('hello。good'.capitalize())
# print('hello\ngood'.capitalize())
# # upper()将所有字母全部大写
# print('hello'.upper())
# # lower()将所有字母全部小写
# print('hello'.lower())
#
# # title 每个单词的首字母大学
# print('good morning'.title())
#
# # 不管用户输入的是大写还是小写的exit都进行退出
# while True:
# content = input('请输入内容,输入exit退出:')
# print("您输入的内容是:", content)
# if content.upper() == 'EXIT':
# break
# ljust(width,fillchar)==>让字符串以指定长度显示
# 如果长度不够,默认在右边使用空格补齐
print('Monday'.ljust(10))
print('Monday'.ljust(10, '+'))
# rjust()原理与以上相同,只是l是左边,r是右边,使用方法都一样
print('Monday'.rjust(10, '+'))
# center() 将字符居中
print('monday'.center(16, '*'))
# lstrip rstrip,删除字符串左边或者右边的空格
print('+++++a p p l e '.lstrip('+'))
print(' a p p l e '.rstrip())
print(' a p p l e '.strip())
# 以某种固定格式显示的字符,我们可以将它切割成一个列表
x = 'zhangsan+lisi+wangwu+zhaoliu'
names = x.split('+')
print(names)
# 将列表转换为一个字符串
fruits = ['apple', 'pear', 'banana', 'orange']
print('-'.join(fruits))
print('*'.join('hello'))
# 字符串和字符串之间可以使用加法运算,作用是拼接两个字符串
# 字符串和数字之间可以使用乘法运算,作用是将指定的字符串重复多次
# 字符串和数字之间做 == 运算结果是False,做!=运算结果是True
# 字符串之间做比较运算,会逐个比较字符串的编码值
# 不支持其他的运算
字符串的编码
编程中的每一个字符都是以二进制的形式存储在计算机中的 每一个字符都在计算机中对应一个数字 最重要的就是ASCII码表 A----65 a------97 ASCII 一共可以表示128个字符 然后在ASCII的基础上又发展出来一系列的码表 ISO-8859-1,与ASCII码表完全兼容 Unicode 编码,绝大部分国家的文字都有一个对应的编码
字符串的编码集
# ASCII---Latin1---Unicode编码
# 字符 -- 数字编码存在一个一一对应的关系
# 使用内置函数 chr 和 ord 能够查看数字和字符的对应 关系,是ASCII 码表
# ord 获取字符对应的编码, chr 根据编码获取对应的字符
print(ord('a'))
print(chr(77))#M
print(ord('你'))
# GBK-中文简体 utf-8-兼容性最好 BIG5-中文繁体
# 以前的二进制编码具有弊端,所以要进行改进下,所以才出现了适应中文情况的GBK utf-8 BIG5等编码方式
格式化输出字符
# 可以使用 % 占位符来表示格式化一个字符串
name = 'zhangsan'
age = 15
print('大家好,我的名字是:', name, '我今年', age, '岁了')
print('大家好,我的名字是%s,我今年%d岁了' % (name, age))
# 在字符串里可以使用 % 占位符,注意里边是没有都好的
# %s表示的是字符串的占位符
# %d表示的是整数的占位符
# %nd打印时,显示n位,如果不够,在左边使用-空格-补齐
# %0nd打印时,显示n位,如果不够,在左边使用-0-补齐
# %-0nd打印时,显示n位,如果不够,在右边使用-0-补齐
# %f表示的是浮点数的占位符,默认保留6位小数
# %.nf表示的是保留小数点后n位
num = 6
print('大家好,我是%-3d号女嘉宾' % (num))
print('我今天挣了%.3f元钱' % 3.1415927)
# 将默认的十进制数以16进制形式打印出来
a = 255
print(a)
print('%x' % a) ## 以16进制打印出来
print('%X' % a)
print('%o' % a) ##以8进制打印出来
b = 0b10001010110101
print(b) # 二进制转换为10进制
print('%x' % b) # 二进制转换为16进制
print('%o' % b) # 二进制转换为8进制
# 我是%s
print('大家好,我是%%s,我今年%d岁了' % 22)#大家好,我是%s,我今年22岁了
字符串format方法的使用
# 格式化字符串输出还是format方法用的比较多一些
# {}里什么都不写, 会读取后面的内容,一一对应填充
x = '大家好,我是{},我今年{}岁了'.format('zhangsan', 18)
print(x)
# {数字}根据数字的顺序来进行填入,数字从0开始
y = '大叫好,我是{1},我今年{0}岁了'.format(20, 'tom')
print(y)
z = '大叫好,我是{name},我今年{age}岁了,我来自{addr}'.format(age=18, name='jack', addr='江苏')
print(z)
# 列表
a = ['张三', 18, '上海', 188]
b = '大家好,我是{},我今年{}岁了,我来自{},身高{}'.format(a[0], a[1], a[2], a[3])
print(b)
c = '大家好,我是{},我今年{}岁了,我来自{},身高{}'.format(*a)
print(c)
# 字典
a1 = {'name': 'lisi', 'age': 23, 'addr': '北京', 'weight': 66}
c1 = '大家好,我是{name},我今年{age}岁了,我来自{addr},身高{weight}'.format(**a1)
列表的基本使用
基操
# 当我们有多个数据需要按照一定的顺序保存的时候,我们可以考虑列表
name1 = 'zhangsan'
name2 = 'wangwu'
name3 = 'tom'
name4 = 'jack'
# 和字符串一样,都可以使用下标来获取元素和对元素进行切片的操作
# 同时,我们还可以使用下标来修改列表里的元素
# 相较于字符串,字符串只能获取,但是不能修改
# 而列表可以拿,也可以改
# 使用中括号来表示一个列表,列表里的每一个数据我们称之为元素,元素之间采用逗号进行分割
name = ['zhangsan', 'zhangfei', 'sunquan', 'xiangyu', 'liubei']
print(name[3])
name[4] = '武则天'
print(name)
# 同时,还可以使用下标来对元素进行切片
print(name[2:4])
# 可以使用list(可迭代对象),将可迭代对象转换成为一个列表
names = list(('兰陵王', '东皇太一', '孙悟空', '程咬金'))
print(names)
列表增加元素
# 列表是有序可变的
# 操作列表,一般包含增加数据,删除数据,修改数据以及查询数据
# 增删改查
heros1 = ['蜘蛛侠', '钢铁侠', '闪电侠', '青蜂侠', '超人', '蝙蝠侠']
# 1.增加元素----append,insert,extend
# append()——在列表的最后边追加一个元素
heros1.append('灭霸')
print(heros1)
# insert()--insert(self,index,object)--往指定位置加入元素
# index表示下标,也就是要插入的位置。object表示对象,具体插入哪个数据
heros1.insert(1, '星爵')
print(heros1)
# extend()--需要一个可迭代对象,将两个对象合起来
# A.extend(B)==》将可迭代对象B添加到A里
heros2 = ['玉皇大帝', '卢来佛祖', 'theshy']
heros1.extend(heros2)
print(heros1)
列表的修改查询和删除
# 列表是有序可变的
# 操作列表,一般包含增加数据,删除数据,修改数据以及查询数据
# 增删改查
NPC1 = ['蜘蛛侠', '钢铁侠', '闪电侠', '青蜂侠', '超人', '蝙蝠侠', '青蜂侠', '土豆侠']
# 2.删除数据---pop(),remove(),clear()
# pop(index)--会删除列表里最后一个数据,类似于数据结构里的出栈,删除这个数据并返回这个数据
# 也可以用来删除指定位置的元素
print(NPC1.pop()) # 土豆侠
print(NPC1) # ['蜘蛛侠', '钢铁侠', '闪电侠', '青蜂侠', '超人', '蝙蝠侠', '青蜂侠']
NPC1.pop(0)
print(NPC1) # ['钢铁侠', '闪电侠', '青蜂侠', '超人', '蝙蝠侠', '青蜂侠']
# remove()--删除指定元素,如果删除的元素不存在就会报错
NPC1.remove('闪电侠')
print(NPC1) # ['钢铁侠', '青蜂侠', '超人', '蝙蝠侠', '青蜂侠']
# del 方法也可以删除数据,但是尽量不要用这个方法,不推荐这个方法
del NPC1[2]
print(NPC1) # ['钢铁侠', '青蜂侠', '蝙蝠侠', '青蜂侠']
# clear()---清空一个列表,留下一个空的
NPC1.clear()
print(NPC1) # []
# 3。查询相关的方法
NPC2 = ['盖伦', '赵信', '剑圣', '哈撒给', '卡沙', '狮子狗']
print(NPC2.index('剑圣')) # 2
# print(NPC2.index('寒冰')) # 如果元素不存在,就会报错
print(NPC2.count('哈撒给')) # 1--出现了一次
print('卡沙' in NPC2) # True
print('小驴人' in NPC2) # False
# 4.修改元素
# 使用下标可以直接修改列表里的元素
NPC2[3] = '托儿索'
print(NPC2) # ['盖伦', '赵信', '剑圣', '托儿索', '卡沙', '狮子狗']
列表的遍历
# 遍历——将所有的数据都访问一遍,针对的是可迭代对象
# while循环遍历,for...in 循环遍历
NPC3 = ['大树', '克列', '加里奥', '诺手', '蛮子', '杰斯', '豹女']
# for in 方法就是不断的调用next()方法 来查找下一个数据
for hanhan in NPC3:
print(hanhan)
print('//')
# while
i = 0
while i < len(NPC3):
print(NPC3[i])
i += 1