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

python_0基础学习_day03

程序员文章站 2022-07-21 19:07:44
第三节 一、整形和布尔值的转换 int整型 python3: 全部都是整型 python2: 整型,长整型long 十进制转换二进制 # 将十进制的168转换为二进制 ​#得出结果 将十进制的168转换为二进制,(10101000)2 #分析:第一步,将168除以2,商84,余数为0。 #第二步,将 ......

第三节

一、整形和布尔值的转换

  1. int整型

    python3: 全部都是整型

    python2: 整型,长整型long

    • 十进制转换二进制

      # 将十进制的168转换为二进制 

      #得出结果 将十进制的168转换为二进制,(10101000)2
      #分析:第一步,将168除以2,商84,余数为0。
      #第二步,将商84除以2,商42余数为0。
      #第三步,将商42除以2,商21余数为0。
      #第四步,将商21除以2,商10余数为1。
      #第五步,将商10除以2,商5余数为0。
      #第六步,将商5除以2,商2余数为1。
      #第七步,将商2除以2,商1余数为0。
      #第八步,将商1除以2,商0余数为1。
      #第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000  
      print(bin(168))
    • 二进制转换十进制

      # 111110
      # 2进制 - 10进制
      # 0 * 2**0 + 1 * 2 ** 1 + 1 * 2**2 + 1* 2**3 + 1 * 2 ** 4 + 1 * 2 ** 5
      # 0 + 2 + 4 + 8 + 16 + 32 = 62
      print(int("111110",2))
  2. bool布尔值

    • 非0即true,0是false

      true == 1

      false == 0

    • 字符串中只要没有内容就是false

    例:

    a = bool(0)
    print(a) # false
    a = int(true)
    print(a) # 1
    a = int(false)
    print(a) # 0
    a = int(false)
    print(a) # true
    a = bool(" ")
    print(a) # true
    a = bool("")
    print(a) # false

二、字符串详解

  • python中只要是引号引起来的就是字符串

  • 字符串用于存储数据,存储少量数据

  • 字符串中的每一个字母或者字符都称为元素

  1. 索引index

    索引的时候不能超出索引的最大值

  2. 切片and步长

    切片的时候可以超出索引值(起始都可以超出)

    步长:1,2,3从左至右

    -1,-2,-3从右至左

    例:

    # 从左向右排a = "0123456"
    # 从左向右排a = "-7-6-5-4-3-2-1"
    a = "风yu雷dian宝元"
    print(a[4]) # d
    print(a[-4]) # a
    name = "alex,wusir,太白金星,女神,吴超"
    print(name[11:14:2]) # 太金
    print(name[-4:-6:-1]) # 神女
    print(name[-7:-12:-2]) # 星白,
    print(name[::-1]) # 超吴,神女,星金白太,risuw,xela

三、字符串的方法

  • upper() —— 全部大写

    name = "alex"
    a = name.upper()  # 全部大写
    print(a)
    print(name)
  • lower() —— 全部小写

    name = "alex"
    a = name.lower()   # 全部小写
    print(name)
    print(a)
  • startswith("判断字符",索引开头,索引结尾) —— 以什么开头 -- 返回的是布尔值

  • endswith("判断字符",索引开头,索引结尾) —— 以什么结尾 -- 返回的是布尔值

    name = "alex"
    print(name.startswith('e',2,3))  # 以什么开头 -- 返回的是布尔值
    print(name.endswith("x",1,4))    # 以什么结尾 -- 返回的是布尔值
  • count("字符",索引) —— 统计,计数

    name = "aliwusirtaibia"
    print(name.count("i",8))      # 统计,计数 区分大小写,8为索引到位置,从左到右计数
  • strip() —— 脱 默认脱(脱头尾两端的空格,换行符\n,制表符\t)

    pwd = " alexdsb   "
    a = pwd.strip()   # 脱 默认脱(脱头尾两端的空格,换行符\n,制表符\t)
    print(a)
    pwd = "alalexasdsbla"
    a = pwd.strip("al")  # 去除头尾两端指定的内容,"al"不分顺序
    print(a)
  • split() —— 分割(默认空格,换行符\n,制表符\t)

    name = "alex_wu_si_r"
    a = name.split("_")        # 分割(默认空格,换行符\n,制表符\t)
    print(a)                   # ['alex', 'wusir']
    a = name.split("_",2)      # 指定分割次数
    print(a)
  • replace() —— 全部替换

    name = "alex,wusir,ta,i,b,a,i"
    a = name.replace(",",".")               # 全部替换
    print(a)
    a = name.replace(",",".",4)             # 指定替换的次数
    print(a)
  • format"{}" —— 按照位置顺序进行填充

    name = "{}今年:{}".format("宝元",18)    # 按照位置顺序进行填充
    print(name)
    name = "{1}今年:{0}".format("宝元",18)    # 按照索引进行填充
    print(name) # 18今年:宝元
    name = "{name}今年:{age}".format(name="宝元",age=18)    # 按照名字进行填充
    print(name)
  • isdigit() —— 判断字符串中的内容是否全是阿拉伯数字

  • indecimal() —— 判断是不是十进制数

  • isalnum() —— 判断是不是数字,字母,中文

  • isalpha() —— 判断是不是字母,中文

    msg = "alex"
    print(msg.isdigit())      # 判断字符串中的内容是不是全都是数字(阿拉伯数字)false
    print(msg.isdecimal())    # 判断是不是十进制数false
    print(msg.isalnum())      # 判断是不是数字,字母,中文ture
    print(msg.isalpha())      # 判断是不是字母,中文ture
  • len() —— 查看字符串*有多少个元素

    msg = "原谅我这一生不羁放纵爱*"
    print(len(msg)) # 公用的方法: len

四、for循环

  • for —— 关键字

    i —— 变量名(可随意修改)

    in —— 关键字

    mag —— 可迭代对象(可迭代对象: python数据类型中 除了int,bool其余都可以迭代)

  • 基本结构:

    msg = "原谅我这一生不羁放纵爱*"
    for i in msg:
       print(i) # 逐行输出从原到由
    print(i) # 输出循环体最后一个字符
    # 面试题
    for a in "abcds":
    pass  # 过 占位
    print(a) # 输出最后一个元素

    for i in "dsb":
    i = i+"sb"   # 相当于字符串和字符串相加
    print(i)

     

五、练习题

name = "alex lenb"
# 移除 name 变量对应的值两边的空格,并输出处理结果
print(name.strip())
# 判断 name 变量是否以 "al" 开头,并输出结果
print(name.startswith("al"))
# 判断name变量是否以"nb"结尾,并输出结果
print(name.endswith("nb"))
# 将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
print(name.replace("l","p"))
# 将name变量对应的值中的第一个"l"替换成"p",并输出结果
print(name.replace("l","p",1))
# 将 name 变量对应的值根据 所有的"l" 分割,并输出结果。
print(name.split("l"))
# 将name变量对应的值根据第一个"l"分割,并输出结果。
print(name.split("l",1))
# 将 name 变量对应的值变大写,并输出结果
print(name.upper())
# 将 name 变量对应的值变小写,并输出结果
print(name.lower())
# 判断name变量对应的值字母"l"出现几次,并输出结果
print(name.count("l"))
# 如果判断name变量对应的值前四位"l"出现几次,并输出结果
print(name.count("l",4))
# 请输出 name 变量对应的值的第 2 个字符?
print(name[2])
# 请输出 name 变量对应的值的前 3 个字符?
print(name[:3])
# 请输出 name 变量对应的值的后 2 个字符?
print(name[-2:])
-------------------------------------------
s = "123a4b5c"
# 通过对s切片形成新的字符串s1,s1 = "123"
print(s[:3])
# 通过对s切片形成新的字符串s2,s2 = "a4b"
print(s[3:-2])
# 通过对s切片形成新的字符串s3,s3 = "1345"
print(s[:-1:2])
# 通过对s切片形成字符串s4,s4 = "2ab"
print(s[1:-2:2])
# 通过对s切片形成字符串s5,s5 = "c"
print(s[-1])
# 通过对s切片形成字符串s6,s6 = "ba2"
print(s[-3::-2])
# 3.使用while和for循环分别打印字符串s="asdfer"中每个元素。
s = "asdfer"
for i in s:
   print(i)
cou = 0
while cou < len(s):
   print(s[cou])
   cou += 1
# 4.使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。
s = "asdfer"
for i in s:
   print(s)
# 5.使用for循环对s="abcdefg"进行循环,
# 每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,...gsb。
s = "abcdefg"
for a in s:
   a = a + "sb"
   print(a)
# 6.使用for循环对s="321"进行循环,
# 打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。
s = "321"
for b in s:
   print(f"倒计时{b}秒")
print("出发")
# 7.实现一个整数加法计算器(两个数相加):
# 如:content = input("请输入内容:")
# 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。

content = input("请输入内容:").split("+")
i = int(content[0].strip()) + int(content[1].strip())
print(i)

# 8.选做题:实现一个整数加法计算器(多个数相加):
# 如:content = input("请输入内容:")
# 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。

content = input("请输入内容:").split("+")
s = 0
for i in content:
   i = int(i.strip()) # 每个输入的字符串,去空格,转换成整型
   s += i
print(s)


# 9.计算用户输入的内容中有几个整数(以个位数为单位)。
# 如:content = input("请输入内容:") # 如fhdal234slfh98769fjdla
a = 0
content = input("请输入内容:").strip()
for i in content:
   if i.isdecimal():
       a += 1
print(a)


# 10.写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
"""
num = 0
ss = 0
while num < 99:
  num += 1
  if num == 88:
      num += 1
  ss = ss + num
else:
  print(ss-2)
"""
num1 = 0
s1 = 0
while num1 < 99:
   num1 += 1
   if num1 % 2 == 1:
       s1 += num1
   elif num1 == 88:
       continue
   else:
       s1 -= num1
print(s1)

# 11.选做题:写代码,完成下列需求:
# 用户可持续输入(用while循环),用户使用的情况:
# 输入a,则显示走大路回家,然后在让用户进一步选择:
# 是选择公交车,还是步行?
# 选择公交车,显示10分钟到家,并退出整个程序。
# 选择步行,显示20分钟到家,并退出整个程序。
# 输入b,则显示走小路回家,并退出整个程序。
# 输入c,则显示绕道回家,然后在让用户进一步选择:
# 是选择游戏厅玩会,还是网吧?
# 选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入a,b,c选项。
# 选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入a,b,c选项。

f = true
while f:
   c = input("放学了:a:走大路回家;b:走小路回家;c:绕道回家。").strip().upper()
   if c.isalpha() and c in "abc":
      ...
   else:
       print("输入有误,请重新输入!")
       continue
   if c == "a":
       print("走大路回家")
       while true:
           d = input("选择公交车,还是步行?").strip()
           if d == "公交车" or "公交":
               print("10分钟到家")
               f = false
               break
           elif d == "步行" or "buxing":
               print("20分钟到家")
               f = false
               break
           else:
               print("输入有误,请重新输入")
               continue
   elif c == "b":
       print("走小路回家!")
       f = false
   else:
       print("绕道回家!")
       while true:
           g = input("游戏厅玩会,还是网吧?").strip()
           if g == "游戏厅":
               print("一个半小时到家,爸爸在家,拿棍等你")
               break
           elif g == "网吧":
               print("两个小时到家,妈妈已做好了战斗准备")
               break
           else:
               print("输入有误,请重新输入")
               continue


# 12.选做题:判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的.
# 例如, 上海⾃来⽔来⾃海上

msg = input("请输入回文:")
if msg[::1] == msg[::-1]:
   print("是回文")
else:
   print("不是回文")

# 13.制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进行任意现实
# 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx

name = input('姓名:')
paly = input('爱好:')
palce = input('喜欢的地方:')
mas = f"非常帅气的{name},最喜欢在{palce},{paly}"
print(mas)

 

 

 

后续还会持续更新,从入门到放弃  ^.^。