day04-日常笔记

2018-12-28  本文已影响0人  馒头不要面

字符串操作

获取字符

1.获取单个字符

字符串中的每一个字符都会对应一个唯一的下标(索引)用来表示字符在字符串中的位置。
下标是从0开始一次增加的, 0对应的是第一个字符(0 ~ 字符串长度-1)
可以是从-1开始依次减小,-1代表最后一个字符(-1 ~ -字符串长度)
例如:

```
'hello'   h->(0,-5)  e->(1,-4) l->(2,-3)  l->(3,-2) o->(4,-1)
'\tpytho\u4e00n'    p->(1, -7)
```

2.获取部分字符(字符串切片)

方法一:

注意:不管怎么取,结束下标一定取不到!

str1 = 'hello python!'
print('结果1:', str1[0:-1:2])   # 从前往后取
print('结果2:', str1[-1:0:-2])    # 从后往前取

print('结果3:', str1[-1:-100:-1])   # 结束下标越界
print('结果4:', str1[100: -100: -1])  # 下标越界

练习:获取一个字符串中所有下标是奇数的字符(顺序)

print(str1[1:100:2])

str2 = "{'name':'小明', 'age': 18}"
print(str2[1:-1:1])
方法 说明
省略开始下标 字符串[:结束下标:步长] - 当步长是正数,从字符串的第一个字符开始取到结束下标前为止;
           当步长是负数,从字符串的最后一个字符开始取到结束下标前为止.
省略结束下标 字符串[开始下标::步长] - 当步长是正数,从开始下标开始取到字符串最后一个字符为止;
           当步长是负数,从开始下标开始取到字符串的第一个字符为止.
str3 = 'when i was young!'
print(str3[:6], str3[:6:-1])
print(str3[2:], str3[2::-1])
print(str3[:])
print(str3[::-1])    # 让字符串倒序
print(str3)

字符串相关运算

1.字符串支持的运算符: +, *, >, <, ==, != ,>=, <=

python中的字符串支持数学运算符中的+和*,以及所有的比较运算符

2. in和not in操作

语法 功能
字符串1 in 字符串2 判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的子串)
字符串1 not in 字符串2 判断字符串2中是否不包含字符串1(判断字符串1是否是字符串2的子串)

示例:

print('abc' in 'hello abc')     # True
print('abc' in 'ahello bc')     # False

print('abc' not in 'hello abc')     # False
print('abc' not in 'ahello bc')     # True

print('A' in 'hello Abc')

3. len函数

len()可以对序列和字符串进行长度的计算

用法 功能
len(序列) 获取序列长度, 获取序列中元素的个数
len(字符串) 获取字符串的长度(字符的个数)

注意:

示例:

print(len('abc'))

str1 = input('请输入:')
last_char = str1[len(str1)-1]    # 获取输入的字符串中的最后一个字符
print(last_char)

str1 = '    abc'
str2 = '\tabc'
print(str1)     #    abc
print(str2)     #    abc
print(len(str1), len(str2)) #7,4     # 手动输入的tab和\t对应的字符个数可能不一样!\t永远是1

格式字符串

1.什么是格式字符串:

在字符串中通过格式占位符来代替字符串中变化的部分,然后在后面通过数据或者变量确定变化

语法:
包含占位符的字符串 % (值1, 值2, 值3...)
说明:
占位符 - %s  字符串
        %d  整数
        %f  小数   (%.Nf  保留小数点后N位小数)
        %c  字符  (可以将数字转换成字符)
% - 固定写法
() - 固定写法,字符串中只有一个占位符的时候,这个()可以省略
括号中的值 - 值和占位符要一一对应(个数、类型、位置都要对应)

示例:

name = input('姓名:')
age = 18
sex = '男'
# 加操作
# mesage = '我叫XXX,今天xx岁,性别:X, 月薪x万'
# mesage = '我叫'+name+',今年'+age+'岁,性别:'+sex
# print(mesage) 

# 格式字符串
message = '我叫%s,今年%s,性别:%s, 月薪%.2f万 字符:%c' % (name, age, sex, 1.5, 97)
print(message)

练习: 输入一个字符串, 用一个变量保存输入的字符串的相关信息:XXX的长度是XX,最后一个字符是X
  例如: 输入abc -> abc的长度是3,最后一个字符是c

input_str = input('输入一个字符串:')    # 输入jklsdjfklsjflksaj;
message = '%s的长度是%d, 最后一个字符是%c' % (input_str, len(input_str), input_str[-1])
print(message)  # jklsdjfklsjflksaj;的长度是18, 最后一个字符是;

print('%s-%d-%c' % ('abc', 100, 'A'))   # abc-100-A

类型转换

  1. 基本语法
    • 语法:
         类型名(数据) - 将指定数据转换成指定类型
    • 说明:
         类型名 - 任何python支持的,或者自定的类型都可以
         数据 - 需要转换的对象(类型不同要求可能不一样)

2. 转换实例

函数 功能
int(数据) 将其他数据转换成整型
float(数据) 将其他数据转换成浮点型
bool(数据) 将其他类型转换成布尔
str(数据) 将其他数据转换成字符串

字符串的常用方法

提示: 表中所有字符串相关方法的使用方式都是: 字符串.方法名()

1. capitalize()

字符串.capitalize():将指定的字符串的第一个字符转换成大写字母,返回新的字符串

注意: 只有第一个字符是字母的时候才有效
如:

str1 = 'abc'
print(str1.capitalize())    # Abc

2.字符串对齐方式

方法 意义
字符串.center(width, fillchar) 居中
字符串.ljust(width, fillchar) 左对齐
字符串.rjust(width, fillchar) 右对齐

width决定新的字符串的长度, fillchar就是用来填充多出来的位置的字符

示例:

str1 = 'abc'
print(str1.center(7, '0'))  # 00abc00
print(str1.ljust(7, '*'))   # abc****
print(str1.rjust(7, '='))   # ====abc
print(str1.center(7))       #   abc  

3.count

字符串1.count(字符串2) - 在字符串1中统计字符串2出现的次数

print('abc and hight a'.count('abc')) # 1

4.isalpha

字符串.isalpha() - 判断字符串中是否全是字母

注意:非ASCII码表中的字符检测不出来!

print('aSH'.isalpha())

5.join

字符串1.join(字符串2) - 将字符串1插入到字符串2中的每个字符之间

new_str = '**'.join('abc')
print(new_str)  # a**b**c

6.split

字符串1.split(字符串2) - 以字符串2去切割字符串1,返回一个列表

print('12,89,90'.split(','))    # ['12', '89', '90']

练习:输入进班顺序,然后自动产生对应的学号, py1809XXXX
例如:输入1 ——> py18090001 输入32 ——> py18090032 ...

num = input('请输入顺序号:')    # 1
# 生成序号后面变化的部分
# new_num = num.rjust(4, '0')
new_num = num.zfill(4)  # zfill(width) == rjust(width, '0')

# 添加固定部分
study_num = 'py1809'+new_num
print(study_num) #py18090001
上一篇 下一篇

猜你喜欢

热点阅读