4-27day02

python字符串操作

  1. replace方法 字符串替换,第三个参数没有则会全部替换
#replace
name = 'hello world haha'
new_name = name.replace('ha', 'Ha', 1)
print(new_name)

输出


image.png
  1. split方法 字符串分割,后面的参数表示识别多少次
#split 字符串分割,带参数数字标示分几次,
# 后面符合条件的条件不管了
name = 'hello world ha ha'
name_list = name.split(" ")
print(name_list)
name_list1 = name.split(" ", 2)
print(name_list1)

输出


image.png
  1. capitalize方法 大写字符串首字母
#大写字符串的第一个字符
my_str = 'hello world neuedu'
my_str2 = my_str.capitalize()
print(my_str2)

输出


image.png
  1. title方法 大写每个单词的首字母
#大写每个单词的第一个字母
my_str3 = my_str.title()
print(my_str3)

输出


image.png
  1. startwith方法 boolean判断,字符串是否以某开头
#startwith boolean判断,字符串是否以某开头
my_str4 = my_str.startswith('hello')
print(my_str4)

输出


image.png
  1. endswith方法 boolean判断,字符串是否以某结尾
#endswith boolean判断,字符串是否以某结尾
my_str6 = my_str.endswith('cpp')
print(my_str6)

输出


image.png
  1. upper方法 把字符串所有转换成大写
#upper 把字符串所有转换成大写
my_str7 = my_str.upper()
print(my_str7)

输出


image.png
  1. lower 把字符串所有转换成小写
#lower 把字符串所有转换成小写
my_str8 = my_str7.lower()
print(my_str8)

输出


image.png
  1. rjust方法 返回原字符串的右对齐,并用空格填充使返回width长度的新字符串
#rjust方法 返回原字符串的右对齐,并用空格填充
#使返回width长度的新字符串
my_str_space = 'hello'
new_my_str_space = my_str_space.rjust(10)
print(new_my_str_space)

输出


image.png

ps:···后加pyrhon可以python高亮

  1. ljust方法 返回原字符串的左对齐,并用空格填充右侧
#ljust方法 返回原字符串的左对齐,并用空格填充
#使返回width长度的新字符串
new_my_str_space1 = my_str_space.ljust(100)
print(len(new_my_str_space1))
print(new_my_str_space1)

输出


image.png
  1. center方法 在中间两边加空格
#center() 22,23+5 = 50
new_my_str_space2 = my_str_space.center(50)
print(len(new_my_str_space2))
print(new_my_str_space2)

输出


image.png
  1. rstrip方法 去除右边空格
#rstrip 去除右边的空格
new_str3 = new_str2.rstrip()
print(len(new_str3))
print(new_str3)

输出


image.png
  1. strip方法 去除两端空格
#strip 去除两端的空格
print(len(new_my_str_space2))
new_str4 = new_my_str_space2.strip()
print(len(new_str4))
print(new_str4)
输出
![image.png](https://upload-images.jianshu.io/upload_images/17476301-48506b75911b2913.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


#\t制表 \n空格 去除的时候都算空格,占一个长度
str1 = '\n\tdadadad\t'
  1. rfind方法 右侧开始查找
#rfind
index5 = my_str.rfind('neuedu')
print(index5)
image.png
  1. partition方法 把mystr分成以str分割成三步分
    前,str,后
#partition把mystr分成以str分割成三步分
#前,str,后
print(my_str)
t_mystr = my_str.partition('neuedu')
print(t_mystr)#元组,前面一部分,后面一部分

输出


image.png
  1. rpartition方法
  2. splitlines方法 按照行分割,返回一个包含各行作为元素的列表
#splitlines 按照行分割,返回一个包含各行
#作为元素的列表
line = 'hello\nworld'
print(line)
list_line = line.splitlines()
print(list_line)

输出


image.png
  1. isalpha方法 字母,判断字符串是否都是字母组成的
#isalpha 字母,判断字符串是否都是字母组成的
alpha = my_str.isalpha()
print(alpha)
alpha2 = 'dddd'
alpha3 = alpha2.isalpha()
print(alpha3)

输出


image.png
  1. isdigit方法 判断字符串是否都是数字组成的
  2. isalnum方法 判断是否只有字母和数字
  3. isspace方法 判断只有空格
  4. join方法 列表转字符串
#join 列表转字符串
str4 = ' '
list1 = ['my', 'name', 'is', 'suntong']
my_name = str4.join(list1)
print(my_name)
my_name1 = "_".join(list1)
print(my_name1)

输出


image.png
  1. 常用的find replace split join strip

列表用法

#价值一个亿的ai核心代码
while True:
    print('AI说: '+input().strip('吗?')+'!')
  1. 列表
    列表和数组很像,但list可以存储不同类型的数据
name_list = ['鲁班', 'xiaoming', 1024]
print(name_list)
print(type(name_list))
  1. 访问
#访问
# print(name_list[0])
  1. 遍历
#遍历
for x in name_list:
    print(x)
 i = 0
while i < len(name_list):
    print(name_list[i])
    i += 1
  1. 添加
str = input('请输入内容')
name_list.append(str)
print(name_list)

list1 = []
for i in range(10):
    list1.append(i)
print(list1)
  1. insert
#insert 在指定位置index前插入元素,元素object
a = [0, 1, 2]
a.insert(1, 10)
print(a)
  1. extend
#extend 将另外一个集合中添加到列表中
a = [1, 2]
b = [3, 4]
a.append(b)
print(a)
a.extend(b)
print(a)
  1. update 修改
#修改 update
name_list[1] = '小明'
print(name_list)
  1. in notin 查找
find_name = '小明'
if find_name not in name_list:
    print('小明在吃屎')
else:
    print('小明不在吃屎')
  1. count 计数
#index count
a = ['a', 'b', 'c', 'a', 'd']
index1 = a.index('c', 1, 3)#作弊有开
print(index1)
counts = a.count('b')
print(counts)
  1. del 下标删除
#del:根据下标进行删除
del name_list[0]
print('删除后', name_list)
  1. pop 删除最后一个元素
#pop:删除最后一个元素
name_list.pop()
print('删除后', name_list)
  1. remove 根据元素的值进行删除
#remove:根据元素的值进行删除
name_list.remove('小明')
print('删除后', name_list)
  1. 列表的排序
    .sort(),括号中参数不加是从小到大,加了reverse=True就是从大到小
#from 模块名字 import name1,name2
from random import randint
# num = randint(-10, 10)
num_list = []
for _ in range(10):
    num_list.append(randint(1, 20))
print(num_list)
num_list.sort()
print(num_list)
num_list.sort(reverse=True)
print(num_list)
  1. .sort和sorted
#.sort对原来的列表进行修改排序,sorted()返回新的
# 原来的没有改变
#.sort属于列表的成员方法,sorted对所有可迭代的对象进行操作
# 调用形式不一样
new_list = sorted(num_list)
print(num_list)
print(new_list)
  1. 字符串的常用操作
#字符串的常用操作
print(dir(''))
print(dir([]))

输出


image.png
  1. 列表的嵌套
#列表的嵌套 列表里面还有列表
school_name = [['qinghua', 'beida'], ['nankai', 'tianda'], ['dq', 'yanda']]
print(school_name)
print(school_name[0][1])
print('++++++++')
print(school_name[0, 1])

输出


image.png
  1. 列表推导式
#列表推导式
list1 = []
for i in range(10):
    list1.append(i)
print(list1)

from random import randint

list2 = [i for i in range(10)]
print(list2)

list3 = ["不给鲁班就送" for _ in range(5)]
print(list3)

输出


image.png

加入if判断

from random import randint
#生成10个元素,范围在[-10,10]区间的列表
l = [randint(-10, 10) for _ in range(10)]
print(l)
#选出大于等于0的数据
res = []
for x in l:
    if x >= 0:
        res.append(x)
print(res)
#循环的过程中使用if
res2 = [x for x in l if x >= 0]
print(res2)

#列表转化成字符串
my_list = ['welcome', 'to', 'ML', 'world']
my = str(my_list)
print(my)
print(' '.join(my_list))

str1 = 'hehe'*3
print(str1)
list4 = ['6', 9, 0, 3, 14]*5
print(list4)


number = [i for i in range(11)]
print(number)
a = []
#筛选出偶数数据
for i in range(11):
    if i % 2 == 0:
        a.append(i)
print(a)

b = [x for x in range(11) if x % 2 == 0]
print(b)
  1. 列表案例
    随机分配8个人到3个办公室
import string
from random import randint
#import random
#使用时麻烦
#定义三个办公室
office = [[], [], []]
#生成8个字母代表老师
names = string.ascii_uppercase[:8]
#转换为列表
names = list(names)
print(names)
for name in names:
    #产生一个随机数[0,2]
    index = randint(0, 2)
    office[index].append(name)
print(office)

i=1
for tempNames in office:
    print('办公是{}人数为{}'.format(i, len(tempNames)))
    i += 1
    for name in tempNames:
        print('{}'.format(name), end='')
    print('-'*30)

元组用法

  1. 访问
#元组 tuple
a = ('ddd', 111, 0.88)
print(type(a))
#序列:列表,字符串,元组
#访问
print(a[0])
  1. 不能修改
#不能修改
# a[1] = 99.9
  1. index和count
# a = ('a', 'b', 'c', 'b', 'a')
# index1 = a.index('a')
# print(index1)
# c = a.count('b')
# print(c)
  1. 单个元组定义方法
#单个元素的元组,为了避免奇异
b = (100,)*3
print(b)
print(type(b))

输出


image.png
  1. 两个列表打包成元组
#同时便利两个列表,zip()用于将可迭代的对象作为
#参数,将对象中的对应元素打包成一个元祖
#返回这些元祖对象 节约内存
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8]
zipped = zip(a, b)
print(zipped)
print(list(zipped))
#长度不一致,与最短的对象相同
zipped1 = zip(a, c)
print(list(zipped1))

输出


image.png
  1. 遍历两个列表
heros = ['后羿', '安其拉']
skills = ['惩戒之贱', '烤串']
for hero, skill in zip(heros, skills):
   print(hero, '--->', skill)

输出


image.png

字典用法

  1. 定义
# 字典 key - value
info = {'name': '刘强东', 'age': 45, 'id': 23254321513, 'addr': '北京'}
  1. 访问
#访问 根据 键进行访问
print(type(info))
print(info['name'])
#访问不存在的会报错
# print(info['sex'])

age = info.get('age')
print(age)
#访问不存在返回None
# print(info['sex'])

#党我们不确定是否存在某个key时,还要获得值,
#可以使用get方法,设置默认值等
mail = info.get('mail', '[email protected]')
age = info.get('age', 20)
print(mail)
print(age)
  1. 修改
#修改 根据key修改
info['name'] = '马云'
print(info)
  1. 添加
#添加
info['sex'] = '男'
print('添加后', info)
  1. 删除 del pop clear
#删除 del根据key删除
del info['name']
print('删除后', info)
# #全删未定义错误
# del info
# print('删除后', info)

#clear  空字典,不报错
# info.clear()
# print('清楚后', info)

#常用操作
#len,k-y的个数
print(len(info))


#所有key
keys = info.keys()
print(keys)
#所有value
values = info.values()
print(values)
#所有items
items = info.items()
print(items)


for key, value in info.items():
    print(key, '---->', value)

集合

  1. 定义
# 集合 无需、唯一
#一般用于元祖或者列表去重

set1 = {1, 2, 5, 4, 3}
print(type(set1))
  1. 添加
#添加
set1.add(8)
print(set1)
  1. 删除 不存在会报错remove pop discard
#删除 不存在回报错
set1.remove(1)
print(set1)

#pop随机删除
set1.pop()
print(set1)

#discard 存在直接删除,不存在不做任何操作
set1.discard(2)
print(set1)

解析

  1. 字典解析
#班级分数
from random import randint
grades = {'Student{}'.format(i):randint(50, 100) for i in range(1, 21)}
print(grades)

#山旋出高于90分的人
d = {k: v for k, v in grades.items() if v >= 90}
print(len(d))
print(d)
  1. 集合解析
#集合解析
set1 = {randint(0, 20) for _ in range(20)}
print(set1)
res = {x for x in set1 if x % 3 == 0}
print(res)

终端交互

4-27day02_第1张图片
image.png

函数

三下双引号然后回车就可以添加函数注释说明文档

# def 函数名(num):
#     pass


def caculateNum(num):
    """
    计算1到num之间的累加和
    :param num: 累加和的最后一位
    :return: 累加和
    """
    res = 0
    for i in range(1, num+1):
        res += i
    return res


res = caculateNum(100)
print(res)

你可能感兴趣的:(4-27day02)