数据类型与相互转换,str相关操作,for循环

时间:2021-09-15 17:49:33

一.基本数据类型

 1.基本数据数据类型:

  int 整数
  str 字符串. 一般不存放大量的数据
  bool 布尔值. 用来判断. True, False
  list 列表.用来存放大量数据, []表示. 里面可以装各种数据类型.
  tuple 元组. 只读列表. () 表示
  dict 字典. {key:value}
  set 集合. 不重复


 2. int类型


  bit_length() 返回一个数的二进制长度


 3. bool类型


  布尔只有两个值. True,False. 一般是没有什么操作的.

  类型转换的问题:
  想把xx转换成yy. yy(xx)

  可以表示False的内容:0, "", [], tuple(), {}, None
  所有的空都是False. 所有的非空是True

4. str类型 字符串

  由',",''', """阔起来的内容就是字符串字符串是不可变的数据类型.

  不论你执行任何操作. 源字符串是不会改变的, 每次操作都会返回新字符串

二. str相关操作

 1, 索引和切片
  索引从0开始, 使用[下标]可以获取到每一个字符, 还可以倒着数
  切片: [起始位置:结束位置:步长]
      1. 顾头不顾尾
      2. 默认从左到右取值.
      3. 当步长为负可以从右往左取值


 2, 字符串相关操作
     1. upper() 转换成大写
     2. stript() 去掉空白
     3. replace(old, new) 把xxx替换成xxxx
     4. split() 切割. 返回列表. 用多长的刀. 就要损失掉多少
     5. startswith() 判断是否以xxx开头
     6. find(), count(), index()
     7. len() 字符串长度. python的内置函数

#isdigit:可以判断bytes和unicode类型,是最常用的用于于判断字符是否为"数字"的方法
age=input('>>: ')
print(age.isdigit())

name.isalpha() #判断字符串是否由字母组成
name.isspace()  是否为空格

三.for循环

    for 变量 in 可迭代对象:
    循环体, 也存在break和continue
    else:
    当循环结束的时候会执行


练习:
1,请输出 name ="aleX leNb" 变量对应的值中 "e" 所在索引位置?
name ="aleX leNb"
index = 0 # 手动记录一下索引
for c in name:
    if c == 'e': # 如果字母是e
        print(index)    # 打印索引
    index = index + 1

 2,有字符串s = "123a4b5c"

s = "123a4b5c"
(1)通过对s切片形成新的字符串s1,s1="123"
s = "123a4b5c"
s1 = s[0:3] print(s1) #顾首不顾尾.
(2)通过对s切片形成新的字符串s2,s2="a4b"
s = "123a4b5c"
s2 = s[3:6] print(s2)
 

 (3)通过对s切片形成新的字符串s3,s3="1345"

 

s = "123a4b5c"
s3 = s[0:-1:2]
print(s3) #[起始位:终止位:步长]
(4)通过对s切片形成新的字符串s4,s4="2ab"
s = "123a4b5c"
s4 = s[1:-2:2]
print(s4)
(5)通过对s切片形成新的字符串s5,s5="c"
 
s5 = s[-1]
print(s5)
(6)通过对s切片形成新的字符串s6,s6="ba2"
s6 = s[-3:0:-2]
print(s6)         # 倒着切,倒着数,步长为负
3.使用while和for循环分别打印字符串s="asdfer"中的每个元素.
s = "asdfer"
count = 0
while len(s) > count:
    print(s[count])
    count = count + 1
for i in s:
    print(i)
 

 4,使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"

 
s = "asdfer"
for i in s:
     print(s)


5,使用for循环对s='abcdefg'进行循环,每次打印的内容是每个字符加上sb,例如:asb,bsb....
s='abcdefg'
for i in s:
     print(i + "sb")
 
6,使用for循环对s="321"进行循环,打印的内容一次是:"倒计时3秒","倒计时2秒"",倒计时1秒","出发".
s = "321"
for i in s:
    print("倒计时"+ i+"秒")
else:
    print("出发")
 

 7,实现一个整数加法计算器(两个数相加):

如content = input("请输入内容:")用户输入:5+9或5+ 9或5 + 9,然后进行分割在进行计算.
content = input("请输入内容:如5+ 9")
content = content.replace(" ","")
s = content.split("+")
print(int(s[0])+int(s[1]))

8,实现一个整数加法计算器(多个数相加)

content = input("请输入内容:")
sum = content.split("+")
i = len(sum)-1
n = 0
a = int(sum[n])
h = int(sum[i])
while i > n:
    a += h
    n += 1
else:
    print(a)

9,计算用户输入内容中有几个整数(以个位数为单位)

user_shuru = input("请输入内容:")
count = 0
for i in user_shuru:
     if i.isdigit():
        count += 1

print(count)

  


10,写代码,完成下列需求:
用户可持续输入(用while循环),用户使用的情况:
输入A,则显示走大路回家,然后在让用户进⼀步选择:
是选择公交⻋,还是步行?
选择公交⻋,显示10分钟到家,并退出整个程序。
选择步行,显示20分钟到家,并退出整个程序。
输入B,则显示走小路回家,并退出整个程序。
输入C,则显示绕道回家,然后在让用户进⼀步选择:
是选择游戏厅玩会,还是网吧?
选择游戏厅,则显示 ‘ ⼀个半小时到家,爸爸在家,拿棍等你。’并让其
重新输入A,B,C选项。
选择网吧,则显示‘ 两个小时到家,妈妈已做好了战斗准备。’ 并让其重
新输入A,B,C选项。
while 1 :
    content = input("请输入你想选择的路线A,B,C:")
    if content == "A":
       print('走大路回家')
        a = input("公交还是步行")
        if a == "公交":
            print("10分钟到家")
        elif a == '步行':
           print("20分钟到家")
        else:
            print("请按提示操作")
        break
    elif content == "B":
        print("走小路回家")
        break
    elif content == "C":
        print("绕道回家")
        c = input("游戏厅玩会儿还是网吧")
        if c == "游戏厅":
            print(" ⼀个半小时到家,爸爸在家,拿棍等你。")
        if c == "网吧":
            print("两个小时到家,妈妈已做好了战斗准备。")
        else:
            print('请按提示操作')
    else:
        print('请输入正确的操作,别捣乱')

  


11,写代码:计算1-2+3-....+99中除了88以外所有数的和.
count = 1
sum = 0
while count < 100:
    if count == 88:
        count += 1
        continue
    if count % 2 == 1:
        sum += count
    else:
        sum -= count
    count += 1
print(sum)

  


12,判断一句话是否是回文.
content = input("请输入一句话:")
a = content[0::]
b = content[-1::-1]
if a == b:
    print('这是回文')
else:
    print("这不是回文")

  


13,输入一个字符串,要求判断在这个字符串中大写字母,小写字母,数字,其他字符共出现了多少次,并输出出来.
content = input("请输入一句话")
a = 0
b = 0
c = 0
d = 0
for i in content:
    if i.isupper():
        a += 1
    if i.islower():
        b += 1
    elif i.isalnum():
        c += 1
    else:
        d += 1
print(a,b,c,d,)

  


14,格式华输出
name = input("请输入你的名字:")
D_dian = input("请输入地点:")
hobby = input("请输入爱好:")
print("敬爱可亲的{} 最喜欢在{}干{}".format(name, D_dian, hobby)) ## {  }format()

  

15,用户输入一个名字,判断是否是百家姓.
B_j_x_names = '''赵钱孙李,周吴郑王。
冯陈褚卫,蒋沈韩杨。
# 朱秦尤许,何吕施张。
# 孔曹严华,金魏陶姜。
# 戚谢邹喻,柏水窦章。
# 云苏潘葛,奚范彭郎。
# 鲁韦昌马,苗凤花方。
# 俞任袁柳,酆鲍史唐。
# 费廉岑薛,雷贺倪汤。
# 滕殷罗毕,郝邬安常。
# 乐于时傅,皮卞齐康。
# 伍余元卜,顾孟平黄。
# 和穆萧尹,姚邵湛汪。
# 祁毛禹狄,米贝明臧。
# 计伏成戴,谈宋茅庞。
# 熊纪舒屈,项祝董梁。
# 杜阮蓝闵,席季麻强。
# 贾路娄危,江童颜郭。
# 梅盛林刁,钟徐邱骆。
# 高夏蔡田,樊胡凌霍。
# 虞万支柯,昝管卢莫。
# 经房裘缪,干解应宗。
# 丁宣贲邓,郁单杭洪。
# 包诸左石,崔吉钮龚。
# 程嵇邢滑,裴陆荣翁。
# 荀羊於惠,甄曲家封。
# 芮羿储靳,汲邴糜松。
# 井段富巫,乌焦巴弓。
# 牧隗山谷,车侯宓蓬。
# 全郗班仰,秋仲伊宫。
# 宁仇栾暴,甘钭厉戎。
# 祖武符刘,景詹束龙。
# 叶幸司韶,郜黎蓟薄。
# 印宿白怀,蒲邰从鄂。
# 索咸籍赖,卓蔺屠蒙。
# 池乔阴鬱,胥能苍双。
# 闻莘党翟,谭贡劳逄。
# 姬申扶堵,冉宰郦雍。
# 卻璩桑桂,濮牛寿通。
# 边扈燕冀,郏浦尚农。
# 温别庄晏,柴瞿阎充。
# 慕连茹习,宦艾鱼容。
# 向古易慎,戈廖庾终。
# 暨居衡步,都耿满弘。
# 匡国文寇,广禄阙东。
# 欧殳沃利,蔚越夔隆。
# 师巩厍聂,晁勾敖融。
# 冷訾辛阚,那简饶空。
# 曾毋沙乜,养鞠须丰。
# 巢关蒯相,查后荆红。
# 游竺权逯,盖益桓公。
# 万俟司马,上官欧阳。
# 夏侯诸葛,闻人东方。
# 赫连皇甫,尉迟公羊。
# 澹台公冶,宗政濮阳。
# 淳于单于,太叔申屠。
# 公孙仲孙,轩辕令狐。
# 钟离宇文,长孙慕容。
# 鲜于闾丘,司徒司空。
# 丌官司寇,仉督子车。
# 颛孙端木,巫马公西。
# 漆雕乐正,壤驷公良。
# 拓跋夹谷,宰父谷梁。
# 晋楚闫法,汝鄢涂钦。
# 段干百里,东郭南门。
# 呼延归海,羊舌微生。
# 岳帅缑亢,况郈有琴。
# 梁丘左丘,东门西门。
# 商牟佘佴,伯赏南宫。
# 墨哈谯笪,年爱阳佟。
# 第五言福,百家姓终。
# '''
sum = ""
YHname = input("请输入你的姓名:")
for c in YHname:
    sum = sum + c
    if sum in B_j_x_names:
      print("在百家姓中")
        break
else:
    print("不在百家姓中")