2、字符串和数据类型

1、现在有字符串:str1 = 'python cainiao 666'

    1、请找出第 5 个字符。  

    2、请复制一份字符串,保存为 str_two

    3、请找出最中间的字符。(字符串长度是偶数。)

    4,   选做:可以尝试字符串长度不确定的情况。(涉及到后面内容,不需要提交)

2、卖橘子的计算器:写一段代码,提示用户输入橘子的价格,和重量,最后计算出应该支付的金额!(不需要校验数据,都传入数字就可以了。)

3.演练字符串操作

my_hobby = "Never stop learning!"

  • 截取从 位置2 ~ 位置6 的字符串

  • 截取从 位置2 ~ 末尾 的字符串

  • 截取从 开始位置~ 位置6 的字符串

  • 截取完整的字符串

  • 从 索引3 开始,每2个字符中取一个字符

  • 从右边开始截取,倒数第 2位置 到 倒数 5位置,步长为2

  • 截取字符串末尾两个字符

  • 字符串的逆序

说明:“位置”指的是字符所处的位置(比如位置1,指的是第一个字符“N”),“索引”指的是字符的索引值(比如索引0, 代表的是第一个字符“N”)

 

 

"""1、现在有字符串:str1 = 'python cainiao 666'
1、请找出第 5 个字符。
2、请复制一份字符串,保存为 str_two
3、请找出最中间的字符。(字符串长度是偶数。)
4, 选做:有基础的同学可以尝试字符串长度不确定的情况。(涉及到后面内容,不需要提交)"""
# 解答:
# TODO:1.请找出第 5 个字符。
str1 = 'python cainiao 666'
# 1)索引正取
print("请找出第 5 个字符方式1:", str1[4])
# 2)索引反取
print("请找出第 5 个字符方式2:", str1[-14])
# 3)切片正取
print("请找出第 5 个字符方式3:", str1[4:5])
# 4)切片反取
print("请找出第 5 个字符方式4:", str1[-14:-15:-1])

# TODO:2、请复制一份字符串,保存为 str_two
name = 'python cainiao 666'
""" 索引/切片复制,是最常用的复制方式"""
# 1)赋值
str_two = name
print("复制字符串,赋值得到 :", str_two)
# 2)切片省略
str_two1 = name[:]
print("复制字符串,切片省略获取 :", str_two1)
# 3)跳级
str_two2 = name[::1]
print("复制字符串,切片跳级获取 :", str_two2)
# 4)切片越界
str_two3 = name[:1000]
print("复制字符串,切片越界获取 :", str_two3)

# TODO:3、请找出最中间的字符。(字符串长度是偶数。)
str1 = 'python cainiao 666'
# print(len(str1)) # 获取字符串长度
a = len(str1) # 长度赋值给变量
# 使用切片获取
print("打印中间的字符方式1:", str1[int(a / 2 - 1):int(a / 2 + 1)]) # 索引正取

print("打印中间的字符方式2:", str1[-int(a / 2 + 1):-int(a / 2 - 1)]) # 索引反取

# 使用索引获取
# middle = int(len(str1)/2)
# print(str1[middle-1])
# print(str1[middle])

# TODO:4, 选做:有基础的同学可以尝试字符串长度不确定的情况。(涉及到后面内容,不需要提交)
a = input("请输入一个字符串:")
b = len(a)
if (b % 2) == 0: # 对长度取余,不等于0表示长度为奇数,等于0,表示长度为偶数 # TODO 这里和0作比较,整除了是偶数,不能整除是奇数
# print(a[int(b / 2 - 1):int(b / 2 + 1)]) # 因为切片取左不取右,右边需要加1
print("长度是偶数时中间字符串是:{}".format(a[int(b / 2 - 1):int(b / 2 + 1)]))
else:
# print(a[int(b // 2):int(b // 2 + 1)]) # 此处的意思就是取中间那位,因为索引值始终比元素位置少1
print("长度是奇数时中间字符串是:{}".format(a[int(b // 2):int(b // 2 + 1)]))


"""
除法 /
整除 // 取商的数值
取余 % 取余数
取中间元素:
1)当长度是偶数时,取的位置是长度/2和长度/2+1,对应的元素的索引值为长度/2-1和长度/2
2)当长度是奇数时,取的位置是长度//2取其商+1,对应的元素索引值为长度//2取其商
e.g:1234取的位置是第2、第3位,取的元素索引值为1、2
12345 取的位置是第3位,取的元素索引值为2
"""

# TODO:2、卖橘子的计算器:写一段代码,提示用户输入橘子的价格,和重量,最后计算出应该支付的金额!(不需要校验数据,都传入数字就可以了。)
# input输入为str类型,计算支持int类型,需int()转换,格式化输出
print()
price = input("请输入橘子的价格:")
weight = input("请输入橘子的重量:")
cost = int(price) * int(weight) # 字符串不支持相乘,需转换为int类型
print("橘子价格{},您一共买了{}橘子,您需支付{}".format(price, weight, cost))

# 此处最好使用float,因为价格、重量都可能是浮点数

# TODO:3.演练字符串操作my_hobby = "Never stop learning!"
# 说明:“位置”指的是字符所处的位置(比如位置1,指的是第一个字符“N”),“索引”指的是字符的索引值(比如索引0, 代表的是第一个字符“N”)
my_hobby = "Never stop learning!"
print(len(my_hobby))
# 1)截取从 位置2 ~ 位置6 的字符串
print("截取从 位置2 ~ 位置6 的字符串方式1:", my_hobby[1:6])
print("截取从 位置2 ~ 位置6 的字符串方式2:", my_hobby[-19:-14])
# 2)截取从 位置2 ~ 末尾 的字符串
print("截取从 位置2 ~ 末尾 的字符串方式1:", my_hobby[1:])
print("截取从 位置2 ~ 末尾 的字符串方式2:", my_hobby[-19:-1])
# 3)截取从 开始位置~ 位置6 的字符串
print("截取从 开始位置~ 位置6 的字符串方式1:", my_hobby[:6])
print("截取从 开始位置~ 位置6 的字符串方式2:", my_hobby[-20:-14])
# 4)截取完整的字符串
print("截取完整的字符串方式1:", my_hobby[:])
print("截取完整的字符串方式2:", my_hobby[::1])
print("截取完整的字符串方式3:", my_hobby[:1000])
print("截取完整的字符串方式4:", my_hobby[-20:])
# 5)从 索引3 开始,每2个字符中取一个字符
print("从 索引3 开始,每2个字符中取一个字符:", my_hobby[3::2])
# 6)从右边开始截取,倒数第 2位置 到 倒数 5位置,步长为2,注意这里不是-5,是-6
print("从右边开始截取,倒数第 2位置 到 倒数 5位置,步长为2:", my_hobby[-2:-6:-2])
# 7)截取字符串末尾两个字符
print("截取字符串末尾两个字符方式1:", my_hobby[18:])
print("截取字符串末尾两个字符方式2:", my_hobby[-2:])
# 8)字符串的逆序字符串的逆序
print("字符串的逆序方式1:", my_hobby[::-1])
print("字符串的逆序方式2:", my_hobby[-1::-1])

"""4, 总结本节课内容,画出思维导图或者笔记详情。(这节课非常重要,务必进行总结)"""
posted @ 2020-05-28 19:48  lucky_little  阅读(283)  评论(0编辑  收藏  举报