day04 字符串

2018-12-27  本文已影响0人  挽风style

获取字符

1.获取单个字符

例如:

'hello'
h:(0,-5)
e:(1,-4)
l:(2,-3)
l:(3,-2)
o:(4,-1)

'\tpytho\u4e00n'
p:(1, -7)

result = 'how are you!'[0]    # 获取字符串'how are you!'中下标是0的字符,并且赋给变量result
print(result)

print('how are you!'[-4])   # y
# print('how are you!'[-13])   # IndexError: string index out of range

str1 = 'good good study! day day up!'
print(str1[10])

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])

方法二:(省略步长)

字符串[开始下标:结束下标]:步长是1;从开始下标开始到结束下标前为止,一个一个的取!
print('when i was young!'[2:6])

方法三:(省略开始下标和结束下标)

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中的字符串支持数学运算符中的+和*,以及所有的比较运算符

new_str = 'abc' + '123'
print(new_str)

name = '张三'
message = '吃饭了吗?'
print(name+message+'....')

# print('abc'+123)   # TypeError: must be str, not int

new_str = 'abc'*3
print(new_str)

print(('abc'+'123')*2)    # abc123abc123
print('abc'+'123'*2)      # abc123123

应用:

print('abc' == 'abc')    # True
print('abc' == 'cba')    # False
print('abc' != 'abc')    # False

print('abdcb' > 'abczde')

# 判断一个字符串中第3个字符是否是字母
str1 = 'sh是23.ssy23'
char = str1[2]     # 将第3个字符取出
print('是否是字母:', 'a' <= char <= 'z' or 'A' <= char <= 'Z')
print('是否是中文:', '\u4e00' <= char <= '\u9fa5')

2. in和not in操作

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函数

注意:

print(len('abc'))

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

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

格式字符串

1.什么是格式字符串?

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

占位符 对应类型
%s 字符串
%d 整数
%f 小数(%.nf 保留小数点后n位小数)
%c 字符(可以将数字转换成字符)
name = 'mike'
age = 18
sex = '男'
message = '我叫%s,今年%d岁, 性别%s, 月薪%.2f万, 字符:%c' % (name, age, sex, 1.2, 5000)
print(message)

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

str1 = input('请输入一个字符串:')
a = len(str1)
b = str1[-1]
message = '%s的长度是%d, 最后一个字符是%c' % (str1, a, b)
print(message)

类型转换

1.类型转换

2. 转换实例

数据类型 功能
int 将其他数据转换成整型
float 将其他数据转换成浮点型
bool 讲其他数据转换成布尔类型
str 将其他数据转换成字符串
age = input('年龄:')
print(type(age), age)
print('是否能进入网吧:', int(age) >= 18)
'''

# 1.转换成整型
a = int(12.4)   # 浮点数可以转换成整数, 直接保留整数部分
b = int(True)   # 布尔可以转换成整数, True ->1; False ->0
c = int('123')  # 只有去掉字符串的引号后本身就是一个整数的字符串才能转换成整数
print(a, b, c)

# 2.转换成浮点型
a = float(100)  # 所有整数都可以转换成浮点数,在后面加0
b = float(True)  # 所有布尔可以转换成浮点数, True -> 1.0; False -> 0.0
c = float('12')     # 去掉引号后本身就是一个数字的字符串才能转换成浮点型
print(a, b, c)

# 3.转换成布尔类型
# python中所有数据都可以转换成布尔
# 所有为空为0的值都回转换成False,其他都是True

a = bool(100)
b = bool(0.0)
c = bool('False')
d = bool('')
e = bool([])
f = bool(None)
print(a, b, c, d, e, f)

# 4.转换成字符串类型
# python中所有的数据都可以转换成字符串,而且转换的时候就是单纯的在最外面加引号
a = str(100)
print(a)

练习:输入三个数字,求三个数的和

a = input('数字1:')
b = input('数字2:')
c = input('数字3:')
sum1 = float(a) + float(b) + float(c)
print(sum1)
上一篇 下一篇

猜你喜欢

热点阅读