LF695559 发表于 2020-9-1 14:45:29

请求注释,帮忙理解下

def palindrome(string):
    length = len(string)
    last = length-1
    length //= 2
    flag = 1
    for each in range(length):
      if string != string:
            flag = 0
      last -= 1

    if flag == 1:
      return 1
    else:
      return 0

string = input('请输入一句话:')
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')

fall_bernana 发表于 2020-9-1 15:59:56


def palindrome(string):
    length = len(string)
    last = length-1
    length //= 2
    flag = 1
    print("length的值:",length)
    for each in range(length):
      print(string , string,"each=",each,"last=",last)
      if string != string:
            flag = 0
      last -= 1

    if flag == 1:
      return 1
    else:
      return 0

string = input('请输入一句话:')
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')

请输入一句话:我试试我
length的值: 2
我 我 each= 0 last= 3
试 试 each= 1 last= 2
是回文联!
请输入一句话:我是使我
length的值: 2
我 我 each= 0 last= 3
是 使 each= 1 last= 2
不是回文联!

Y小y 发表于 2020-9-1 16:01:27

def palindrome(string):
    length = len(string)
    last = length-1   
    length //= 2         #length等于length除以2,相当于把字符串对折
    flag = 1 #标志变量
    for each in range(length):   
      if string != string:#如果字符串中索引为each的字符不等于索引为last的字符,就是判断是否对称
            flag = 0                      #就是拿第一个和最后一个相比,然后拿第二个和倒数第二个相比...
      last -= 1                         #要是有一对不相等,flag就等于0
    if flag == 1:
      return 1
    else:
      return 0

string = input('请输入一句话:')
if palindrome(string) == 1: #调用函数,看返回的是1还是0
    print('是回文联!')
else:
    print('不是回文联!')

昨非 发表于 2020-9-1 16:14:44

def palindrome(string): #定义函数,传入字符串
    length = len(string) #取字符串长度
    last = length-1#最后一位下标
    length //= 2#地板除2,相当于字符串折中
    flag = 1      #标记
    for each in range(length):#遍历字符串每个元素
      if string != string:
            flag = 0 #首尾不同时,标记改变
      last -= 1 #尾部前移(同时还有for循环决定的头部后移)

    if flag == 1:#返回标记
      return 1 #1为是回文串,0不是
    else:
      return 0

string = input('请输入一句话:')
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')
理解了记得给个最佳

太阳总会升起 发表于 2020-9-1 16:24:25

def palindrome(string):
    length = len(string) #输入字数
    last = length-1
    length //= 2 #取商的整数部分
    flag = 1
    for each in range(length):
      if string != string: #输入字符串的第一个字符和最后一个字符比较是否相等
            flag = 0 #不相等则flag为0
      last -= 1

    if flag == 1:
      return 1
    else:
      return 0

string = input('请输入一句话:')
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')

就是用取字符串字数除以2商的整数部分把字符串从中间分为两半,用for循环依次比较两端字符是否相等,如果相等则返回flag为1,反之则返回flag为0,最后判断返回为1则是回文联,否则不是。
页: [1]
查看完整版本: 请求注释,帮忙理解下