Python的数据类型—字符串

字符串创建

\n代表换行, \t代表一个tab键

print("hello", end='\n') # hello
print('hello python')    # hello python 

end指定分隔符的, 默认情况下为\n;可以修改为其他字符

print("hello java", end=',')
print("hello c++") 
执行结果 : hello java,hello c++

也可以使用”“” “”” 三个引号

print("""
               学生管理系统

    1. 添加学生信息
    2. 删除学生信息
""")

可以使用’\’对特殊字符进行转义

字符串的特性

索引

s = 'hello'
#正向索引
print(s[0])  # h
print(s[4])  # o
#反向索引
print(s[-1]) # o

切片

print(s[0:3])    # start:end ====从start索引开始到end-1个索引结束;
print(s[:3])     # 如果start没有, 则默认从0索引开始;
print(s[2:])     # 如果end没有, 则默认到最后结束;
print(s[0:4:2])  # 0,2; 从0开始, 到4-1结束, 步长为2;
print(s[::2])    # hlo
print(s[:])      #
print(s[::-1])   # 反转字符串
print(s[-3:])    # 显示最后三个字符
print(s[-1:])    #显示最后一个字符

重复

print('*'*10+'学生管理系统'+'*'*10)  #**********学生管理系统**********

连接

name = 'Go'
print("hello "+"world") # hello world 
print("hello %s" %(name)) #hello Go
print("hello "+name) #hello Go

成员操作符

s="hello"
print('h' in s)  # True
print('hol' in s) # False
print('hol' not in s) # True

for 循环

s = 'hello'
for i in s:  # 依次遍历字符串s的每一个元素i='h', 'e', 'l', 'l', 'o'
    print(i+'a', end='|')    # ha|ea|la|la|oa|

回文数的练习
题目要求:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

num = input("请输入一个数字:")
new_num = num[::-1]
if num == new_num:
    print('true')
else:
    print('false')

也可以用三元运算完成

num = input("请输入一个数字:")
print('true' if num == num[::-1] else 'false')

字符串的常用方法

s = "HeLlo"
print(s.islower())   #字符串中只有小写字母
print(s.isupper())   #字符串中只有大写字母
print(s.isalnum())   #字符串中有字母或数字
print(s.isalpha())   #字符串中有字母
print(s.isdigit())   #字符串中有数字
print(s.isspace())   #字符串中有无空格
print(s.istitle())   #是否为标题?第一个字母大写,其他字母小写
print(s.lower())  #将字符串全部转换为小写
print(s.upper())  #将字符串转换为大写
print("hello".title()) #将字符串转换为标题

判断变量名的合法性

#先判断第一个字符是否合法
var = input("请输入一个变量:")
if var[0].isalpha() or var[0] == '_':
#判断剩余字符是否合法
    for i in var[1:]:
        if not (i.isalnum() or i == "_"):
            print("变量不合法")
            break
    else:
        print("变量合法")
else:
    print("变量不合法")

for while 与else的配合使用

count = 0
while count<3:
    name = 'root'
    psswd = 'root'
    username = input("usernaem:")
    password = input("password:")
    if name == username and psswd == password:
        print("登录成功")
        break
    else:
        count += 1
else:
    print("登录次数超过三次")
print(s.find('python')) # 找到子串并返回最小的索引值
print(s.rfind('python')) # 找到子串并返回最大的索引值
s = "slslsdf"
print(len(s)) #字符串的长度

替换字符串的字符

s = 'hello python, ok, python  is a program language.python'
print(s.replace('hello','westos'))

删除字符串中的空格

s = '  sdfs sdf   '
print(s.strip())  #删除字符串左边和右边的空格
print(s.lstrip()) #删除字符串左边的空格
print(s.rstrip()) #删除字符串右边的空格
#想要删除字符串中间的空格,可以用空字符替换
print(s.replace(" ",""))

字符串对齐

s = '学生管理系统'
print(s.center(30))  #居中,默认是空格填充
print(s.center(30,'*')) # 居中指定填充的字符
print(s.ljust(30,'*'))  #向左对齐
print(s.rjust(30,'*'))  #向右对齐

统计子串的个数

s = 'hello'
print(s.count('l'))

字符串以什么开头,以什么结尾

url1 = 'http://www.baidu.com'
url2 = 'https://www.baidu.com'
print(url1.startswith('http://'))  #True
print(url1.startswith(('http://', 'file://', 'https://'))) #True

判断一个文件是不是一个图片

print(filename.endswith(('.png', '.jpg')))

找出/var/log目录下,以.log结尾的文件

import os
for filename in os.listdir('/var/log'):
    if filename.endswith('.log'):
        print(filename)
    else:
        print('%s不是以.log结尾的文件' %(filename))

用户输入一个ip判断ip是否合法

IP = input("请输入ip地址:")
s = IP.split('.')
if len(s)>=5:
        print(IP+"不合法")
else:
    for i in s:
        ip = int(i)
        if not 0<ip<=255:
            print(IP+"不合法")
            break
    else:
        print(IP+"合法")
info = '12+23+23'
new_info = info.replace('+','*')
print(eval(new_info))    #用于计算字符串的值

反转一个字符串

s = 'this is python'
print(s.split()[::-1]) #输出结果['python', 'is', 'this']
#找出字符串中的最大和最小值,是根据ASCII来排序
print(max('hello'))
print(min('hello'))

枚举

for i in enumerate('hello'):
    print(i)

输出结果:
(0, ‘h’)
(1, ‘e’)
(2, ‘l’)
(3, ‘l’)
(4, ‘o’)

for index,value in enumerate('hello'):
    print('%s->%s' %(index, value))

zip:第一个字符串和第二个字符串的值一一对应

s1 = 'hello'
s2 = '12345'
for i in zip(s1,s2):
    print(i)

输出结果:
(‘h’, ‘1’)
(‘e’, ‘2’)
(‘l’, ‘3’)
(‘l’, ‘4’)
(‘o’, ‘5’)

求最大公约数和最小公倍数

num1 = int(input('number1:'))
num2 = int(input('number2:'))
min_num = min(num1,num2)
max_num = max(num1,num2)
for i in range(min_num,0,-1):
    if min_num%i == 0 and max_num%i == 0:
        break
print("%d%d的最大公约数是%d" %(min_num,max_num,i))
print("%d%d的最小公倍数数是%d" %(min_num,max_num,(max_num*min_num)/i))

练习题:输入一行字符串, 分别统计出包含英文字母,空格,数字和其他字符的个数

s = input('请输入一个字符串:')
alp = num = space = otehr = 0
for i in s:
    if i.isalpha():
        alp += 1
    elif i.isnumeric():
        num += 1
    elif i.isspace():
        space += 1
    else:
        otehr += 1
print("""
            %s的统计

    英文字母个数:%d
    空格个数:%d
    数字个数:%d
    其他个数: %d
""" %(s,alp,num,space,otehr))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值