【千锋Python2205班8.30笔记-day07-字符串相关方法和如何安装三方模块】

01-homework

1.输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)

1.
str1 = 'abcd1234'
str2 = ''
index_ = 1
for index_ in range(1,len(str1),2):
    str2 = str2 + str1[index_]
print(str2)
2.
str1 = 'abcd1234'
print(str1[1::2])

2.输入用户名,判断用户名是否合法(用户名长度6~10位)

1.
while True:
    str1 = input('请输入用户名:')
    length = len(str1)
    print(len(str1))
    if 6 <= length <= 10:
        print('输入正确!')
        break
    else:
        print('输入错误,请重新输入!')
2.
name = 'fdgh8765'
if 6 <= len(name) <= 10:
    print('用户名合法')
else:
    print('用户名非法')

3.输入用户名,判断用户名是否合法(用户名中只能由数字和字母组成)

str1 = input('请输入一个字符串:')
for i in str1:
    if not ('0' <= i <= '9' or 'a' <= i <= 'z' or 'A' <= i <= 'Z') :
        print('不合法')
        break
else:
    print('合法')

4.输入用户名,判断用户名是否合法(用户名必须包含且只能包含数字和字母,并且第一个字符必须是大写字母)

1.
username = input('用户名:')
for i in username:
    if not (('A' <= username[0] <= 'Z') and ('0' <= i <= '9') or ('a' <= i <= 'z' or 'A' <= i <= 'Z')):
        print('不合法')
        break
else:
    print('合法')
    
2.
name = 'A4567.'
count_ = 0
if 'A' <= name[0] <= 'Z':
    for i in name[1:]:
        if 'A' <= i <= 'Z' or 'a' <= i <= 'z':
            continue
        elif '0' <= i <= '9':
            count_ += 1
        else:
            print('用户名非法')
            break
    else:
        result = '用户名合法' if count_ else '用户名非法'
        print(result)
else:
    print('用户名非法')
3.
admin = input('请输入用户名:')
if 'A' <= admin[0] <= 'Z':
    for i in admin[1 : ]:
        '0' < i < '9'
        continue
        print('合法')
    else:
        print('不合法')
else:
    print('不合法')

5.输入一个字符串,将字符串中所有的数字字符取出来产生一个新的字符串

str1 = 'abc1shj23kls99+2kkk'
str2 = ''
for i in str1:
    if '0' <= i <= '9':
        str2 += i
print(str2)

6.输入一个字符串,将字符串中所有的小写字母变成对应的大写字母输出 (用upper方法和自己写算法两种方式实现)
例如: 输入’a2h2klm12+’ 输出 ‘A2H2KLM12+’

1.
str1 = input('请输入一个字符串:')
str2 = str1.upper()
print(str2)
2.
str1 = input('请输入一个字符串:')
str2 =''
for i in str1:
    if 'a' <= i <='z':
        i = chr(ord(i) - 32)
        str2 += i
    else:
        str2 += i
print(str2)

7.输入一个字符串,统计字符串中非数字非字母的字符的个数
例如: 输入’anc2+93-sj胡说’ 输出:4 输入’===’ 输出:3

1.
str1 = input('请输入一个字符串:')     
num = 0                       
for i in str1:                
    if '1' <= i <= '9' or 'a' <= i <= 'z' or 'A' <= i <= 'Z': 
        pass                  
    else:                     
        num += 1              
print(f'字符串非数字非字母的个数为{num}')  
2.
str1 = 'anc2+93-sj胡说'
count_ = 0
for i in str1:
    if not ('0' <= i <= '9' or 'A' <= i <= 'Z' or 'a' <= i <= 'z'):
        count_ += 1
print(count_)

9.输入字符串,获取字符串的中间字符
例如: 输入**‘abc1234’** 输出:‘1’ 输入**‘abc123’** 输出**‘c1’**

1.
str1 = input('请输入一个字符串:')                                  
str2 = ''                                                  
if len(str1) % 2 == 0:                                     
    str2 = str1[len(str1) // 2 - 1] + str1[len(str1) // 2] 
    print(str2)                                            
else:                                                      
    print(str1[len(str1)//2],type(str1[len(str1)//2]))     
2.
str1 = 'abc1234'
str1 = 'abc123'
lenght = len(str1)
if lenght % 2 == 0:
    right = lenght // 2
    left = right - 1
    print(str1[left] + str1[right])
else:
    print(str1[lenght // 2])

11.获取两个字符串中公共的字符

1.
str1 = 'abcaaa123'   
str1_ = ''           
str2 = 'huak3'       
str2_ = ''           
str3 = ''            
for i in str1:       
    if i not in str1_
        str1_ += i   
print(str1_)         
for j in str2:       
    if j not in str2_
        str2_ += j   
print(str2_)         
for x in str1_:      
    for y in str2_:  
        if x == y:   
            str3 += x
print(str3)  
2.
str1 = 'abcaaa123'
str2 = 'huak3'
str3 = ''
for i in str2:
    if i in str1:
        str3 += i
print(str3)

02-review

1.冒泡排序。四条规则。
2.字符串性质、概念、组成。
3.字符串的拼接、重复、成员运算、比较大小
ASCII码表和Unicode码表。
chr()、ord()
4.循环遍历、下标、切片。
5.大小写转换四个方法

03-字符串相关方法

str1 = '12345'
str2 = 'abcde'
str3 = 'abc123'
str4 = 'abc123...'

isdigit:判断字符串是不是一个数字字符串,返回True或False

print(str1.isdigit(), str2.isdigit(), str3.isdigit(), str4.isdigit())

isalpha:判断字符串是不是一个字母字符串,返回True或False

print(str1.isalpha(), str2.isalpha(), str3.isalpha(), str4.isalpha())

isalnum:判断字符串是否是数字字符串或字母字符串或数字-字母字符串,返回True或False

print(str1.isalnum(), str2.isalnum(), str3.isalnum(), str4.isalnum())

对齐:ljust、rjust、center等价于<、>、^

str5 = '分隔符'
print(str5.center(10, '*'))
print(str5.ljust(10, '*'))
print(str5.rjust(10, '*'))

验证字符串开头或结尾是否符合要求:startswith\endswith

tel = '135456789076'
print(tel.startswith('135'))
print(tel.endswith('1111'))
if '/cj/2022/08-30/9840009.shtml'.startswith('https://www.chinanews.com.cn') == False:
    print('https://www.chinanews.com.cn' + '/cj/2022/08-30/9840009.shtml')
print('/cj/2022/08-30/9840009.shtml')

str():构造器语法:将其他数据类型转为字符串

for i in range(1, 1000):
    # print(str(i),type(str(i)))
    lenght = len(str(i))
    # print(lenght)
    numSum = 0
    for j in str(i):
        numSum += int(j) ** lenght
    if numSum == i:
        print(f'{i}是阿姆斯特朗数')

split:切割,将字符串按照指定的符号进行切割,没有被切掉的元素被添加到一个列表中。

str1 = '123,000'
list1 = str1.split(',')
print(list1)

join():按照指定的间隔符将容器中的字符串拼接到一起(前提:容器中所有元素必须都是字符串)

str2 = '+'.join(list1)
print(str2)
str3 = ''.join(list1)
print(str3)

replace:替换,将新字符串替换到旧字符串的位置
字符串.replace(oldStr, newStr, 替换次数(不写表示全部))

str1 = '123,000'
print(str1.replace(',', ''))
print(str1.replace('0', '+', 1))
print('*' * 20)

strip():默认将字符串两端中的空白符号去掉(空白符号包括:空格、换行等)
strip():可以指定去除字符串两端的哪些符号

str1 = '\n   ab\tcd  \n'
print(str1)
print('*' * 20)
print(str1.strip())
print('*' * 20)
print(str1.strip(' '))
print('*' * 20)

手机号、身份证号、银行卡号等不需要参与计算的数字符号作为字符串存储。

tel = '13556789012'
print(tel.replace(tel[3:7], len(tel[3:7]) * '*'))

王者荣耀屏蔽不文明用语原理。
1.人为收集不文明用语。“卧槽”、“臣卜木曹”
2.根据玩家输入的一句话去识别。
3.检测到,进行*替换,将替换完的结果输出

list1 = ['卧槽', '臣卜木曹', '菜鸡', '辣鸡', '垃圾']
content = '卧槽,你可真菜,菜鸡!!!'
for i in list1:
    content = content.replace(i, '*' * len(i))
print(content)

count:判断某个元素在字符串中出现次数。
index、rindex
index:从左向右在字符串中查找某个符号第一次出现的位置(下标);可以指定从哪个位置开始查找。找不到报错。
rindex:从右向左查找元素第一次出现的位置,返回正向下标。找不到报错。
find、rfind
find:从左向右在字符串中查找某个符号第一次出现的位置(下标);可以指定从哪个位置开始查找。找不到返回-1
rfind:从右向左查找元素第一次出现的位置,返回正向下标。找不到返回-1

content = '卧槽,你可真菜,菜鸡!!!'
print(content.index('菜'))
print(content.index('菜', 7))
print(content.rindex('菜'))
print(content.find('菜'))
print(content.find('菜', 7))
print(content.rfind('菜'))
for i in range(50):
    string = '*' * i
    print(f'\r{string}',end='')

04-转义字符

是字符串的一种,是具有特殊含义的字符串。

1.概念

在很久之前,转义字符是反斜杠\加上ASCII码表中的数字(一般是八进制数字)组成的有特殊含义的字符。
在C语言中规定反斜杠\加上ASCII码表中部分符号组成有特殊含义的字符,python使用的是C语言对应的形式。

2.常见的转义字符

\n:换行,将鼠标光标移动到下一行开头。
\t:制表符tab键,能够对齐字符串,\t的宽度不一定为四个空格,\t的长度 = 8 - 字符串长度 % 8
\r:将鼠标光标移动到本行开头
‘、"、\表示没有特殊含义的’、"、\自身

str1 = 'ab\'cd'

3.转义字符的长度

转义字符的长度为1
print(len(‘\n\t’))

4.操作系统:

mac、linux、windows三大操作系统的换行符号各不相同。
windows换行为\r\n
mac换行为\r
linux换行为\n

5.反斜杠\

str1 = 'ab\ncd'
print(str1)
str2 = 'ab\tcd'
str3 = 'abc\tde'
str4 = 'abc\tdef'
print(str2)
print(str3)
print(str4)
for i in range(10):
    print(f'\r{i}', end='')

使用\r实现进度条

from time import sleep

lenght = 50
for i in range(lenght):
    # 进度条的空白槽
    a = (lenght - i) * ' '
    # 进度条的进度
    b = '*' * i
    print(f'\r|{b}{a}|', end='')
    sleep(0.5)

05-原始字符串

1.概念

在字符串前面添加r或者R,就被叫做原始字符串。

2.作用

将字符串中具有特殊含义的符号变得没有意义。

str1 = 'D:\\n\\t\\r......'
str2 = r'D:\n\t\r......'
print(str1)
print(str2)

应用场景:正则表达式、代码中引入文件路径等

06-如何安装三方模块

Python安装三方模块三种方式:

1.可视化安装。

windows操作系统:File -> settings -> Project:项目名 -> Python Interpreter
Mac系统:PyCharm -> Preferences -> Project:项目名 -> Python Interpreter

2.根据提示自动安装

import requests

3.使用命令安装

(1).打开Terminal终端
(2).仅对Windwos而言:激活虚拟环境
cd 命令:切换文件夹
A.使用cd命令进行文件夹切换,直到路径下子文件夹为venv为止
B.使用命令 ./venv/Scripts/activate 激活虚拟环境
Windows默认会报错,因为微软仅用了策略组,使用链接https:/go.microsoft.com/fwlink/?Link ID=135170中的
命令Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser解除禁用(一次修改,永久生效)
再次重新输入./venv/Scripts/activate

(3).使用pip/pip3安装模块
手动修改镜像源。
windwos系统:pip config set global.index-url https://pypi.douban.com/simple
mac系统:pip3 config set global.index-url https://pypi.douban.com/simple
pip install selenium
pip3 install selenium

07-进度条模块

from tqdm import tqdm

for i in tqdm(range(1, 100000001), desc='这是一个进度条'):
    pass

有进度条不能有输出,有输出不能有进度条。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值