欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

学习python的第九天(主要是数字类型内置运算,和字符内置运算)

程序员文章站 2022-04-14 18:27:36
5.7自我总结 1.数字类型内置方法(省略数字类型定义,作用,基本运算) 1.数字类型定义,作用,基本运算 详细的内容,还有些不足地方下面链接中有说明 补充说明 2.无内置运算 3.一个值或者多个值 一个值 4.有序或者无序 数字类型为一个值,也不存在索引,所以不存在有序或者无序的这种说法 5.可变 ......

5.7自我总结

1.数字类型内置方法(省略数字类型定义,作用,基本运算)

1.数字类型定义,作用,基本运算

详细的内容,还有些不足地方下面链接中有说明

补充说明

2.无内置运算

3.一个值或者多个值

一个值

4.有序或者无序

数字类型为一个值,也不存在索引,所以不存在有序或者无序的这种说法

5.可变或不可变

a = 1
print(di(a))
8791457161872
a += 1
print(id(a))
8791457161904
他们值变了,地址也发生了变化说以为不可变    

2.字符串类型内置方法(省略数字类型定义,作用,基本运算)

1.数字类型定义,作用,基本运算

详细的内容,还有些不足地方下面链接中有说明

补充说明

2.运算

1.必须掌握

a)按索引取值
a = 'yang'
#取其中的y
print(a[0])
y
b)切片
切片工具为[头:尾:步(取值的方向)]#如果头,尾不输入默认为最前面,和最后面,步如果步输入贼默认为1
name = 'yang wen yi'
       #012345678910
#用切片工具取其中的yang wen yi
print(name[:])
#用切片工具取其中的wen
print(name[5:8]) # 顾头不顾尾
print(name[-6:-3])#这里正数或者负数代表的是字符串中数据的位置,正为从左往右数,负为从右往左数。
#用切片工具取其中的yn
print(name[:3:2])
#用切片工具取其中的iy
print(name[:-3:-1])
print(name[10:8:-1]) #这里的-1代表从右往左切,如果这里的-1为1则是从左往右切
c)长度len
name = 'yang'
print(len(name))
d)成员运算in/not in
表示判断什么东西里有没有什么,表示判断
name = 'yang'
print('y' in name)
true
e)移除strip
name1 = '     yan          '
name2 = 'a    yan            a'
print(name1.strip())
#yang
print(name2.strip())
#'a    yan            a'
#strip只移除两端的
f)切分split
name = 'yang,wen,yi'
#按照,把名字切分成3个
print(name.split(',',2))
#['yang', 'wen', 'yi']
#按照,把名字切分成2个
print(name.split(',',2))
#['yang', 'wen,yi']   默认是从左往右
g)循环
name = 'yangwneyi'

for i in name:
    print(i)
'''
y
a
n
g
w
e
n
y
i
'''

2.掌握

a)lstrip&rstrip
#lstrip左端清除  记忆(l=left左,strip清楚)
name = '     yang'
print(name.lstrip())
#yang
#rstrip左端清除 记忆(r=rightt右,strip清除)
b)lower&upper
#lower(小写)
name = 'yang wen'
print(name.lower())
#yang wen #将字符串中的大写变成小写
#upper
name = 'yang wen'
print(name.upper())
#yang wen #将字符串中小写变成大写
c)startswith&endswith
# startswith
name = 'yang wen'
print(name.startswith('yang'))
#true      #内容从前往后找
print(name.endswith('wen'))
#true
printprint(name.endswith('new'))
#false    #内容从后往前找但是内容是从左往右读写的
d)rsplit

与split类似,但是切割方向从右往左切割

e)join
#join用于字符串的拼接
name = 'yang,wen,yi'
print(' '.join(name))
#y a n g , w e n , y i
#如果是列表
name_list = ['yang','wen','yi']
print(''.join(name_list))
#yangwenyi
补充纯数字不能拼接
f)replace
#replace(替换)
name = 'yang wen yi'
print(name.replace('yang','wen'))
#wen wen yi
g)isdigit
salary = '111'
print(salary.isdigit())
#true
salary = '111.1'
print(salary.isdigit())
#false
#是否为整列,第一个是,第二个不是

3.了解

a)find|rfind|index|rindex|count
# str之find()、rfind()、index()、rindex()、count()
name = 'yang wen yi'
print(name.find('yang'))
# 0        
print(name.find('wen'))
#5                        find如果找到结果,则输出为该内容的第一个字符的索引,他找不到会报错
rfind就是从右边开始找结果都是一样的就是开头和找的方向不一样
index找的也是索引与find区别在于他没找会报错
count,找到内容输出为1,找不到内容输入为0
b)center|ljust|rjust|zfill
# str之center()、ljust()、rjust()、zfill()
print(f"'info nick'.center(50,'*'): {'info nick'.center(50,'*')}")
********************info nick*********************  #内容中间,填充两侧
print(f"'info nick'.ljust(50,'*'): {'info nick'.ljust(50,'*')}")
info nick*****************************************  #内容左边,填充右边
print(f"'info nick'.rjust(50,'*'): {'info nick'.rjust(50,'*')}")
*****************************************info nick   #内容右边边,填充左边
print(f"'info nick'.zfill(50): {'info nick'.zfill(50)}")  
 00000000000000000000000000000000000000000info nick     # 默认用0填充
c)expandtabs
# str之expandtabs()
print(f"a\\tb\\tc: %s"%('a\tb\tc\t'))  # 默认制表符8个空格
print(f"'a\\tb\\tc'.expandtabs(32): %s"%('a\tb\tc\t'.expandtabs(32)))
#主要是用来修改\t,输出占位符的个数
d)captalize|swapcase|title
# str之captalize()、swapcase()、title()

captalize()#首字母大写
 swapcase()# 大小写互转
title()#每个字母首字母大写
f)is系列

.is数字系列(只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit()即可)

  • isdecimal(): 检查字符串是否值包含十进制字符,如果是返回true,否则返回false。
  • isdigit(): 如果字符串只包含数字则返回true,否则返回false。
  • isnumeric(): 如果字符串中只包含数字字符,则返回true,否则返回false。

今日题目

  1. 写代码,有如下变量name = " alex",请按照要求实现每个功能:
    1. 移除 name 变量对应的值两边的空格,并输出处理结果

      print(name.strip(' '))
    2. 判断 name 变量对应的值是否以 "al" 开头,并输出结果

      print(name.startswith('al'))
    3. 判断 name 变量对应的值是否以 "x" 结尾,并输出结果

      print(name.endswith('x'))
    4. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果

      print(name.replace('l','p'))
    5. 将 name 变量对应的值根据 “l” 分割,并输出结果。

      print(name.split('l'))
    6. 将 name 变量对应的值变大写,并输出结果

      print(name.upper())
    7. 将 name 变量对应的值变小写,并输出结果

      print(name.lower())
    8. 请输出 name 变量对应的值的第 2 个字符?

      print(name[1])
    9. 请输出 name 变量对应的值的前 3 个字符?

      print(name[:3])
    10. 请输出 name 变量对应的值的后 2 个字符?

      print(name[-2:])
    11. 请输出 name 变量对应的值中 “e” 所在索引位置?

      print(name.index('e'))
    12. 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo

      for new_name in name:
          if new_name != name[-1]:
              print(new_name,end='')
  2. 编写猜年龄游戏,有以下要求:
    1. 如果3次没有猜对,可以选择继续玩或退出(自定义退出条件)
    2. 可能会有用户会在输入年龄之后再次输入空白,如18,请做处理
    3. 可能会有用户会恶意输入导致程序报错,如逗你玩呀,请做处理
age = 18
num = 0
chance = 3
while num < chance:
    ipt_age = input('请输入您的年龄:')
    ipt_age = ipt_age.replace(' ','')
    if ipt_age.isdigit() == false:
        print('别乱输入,你这混蛋,请输入数字!!')
        continue
    int_ipt_age = int(ipt_age)
    if int_ipt_age == age:
        print('正确')
        break
    elif int_ipt_age > age:
        print('大了')
    else:
        print('小了')
    num += 1
    if num == 3:
        yes_or_no = input("输入'y'为继续游戏,输入其他任何东西为退出游戏")
        if yes_or_no == 'y'  :
            time == 0
        else:
            print('游戏结束,拜拜')