zoukankan      html  css  js  c++  java
  • python 问题

    1.循环输入

    1 print("if you want exit, please enter q!
    ")
    2 num=[]
    3 while True:
    4     a=input("Please enter num:
    ")
    5     if (a == "q"):
    6         break
    7     else:
    8         num.append(a)

     2.内置函数

     zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

    返回值:返回元组列表。

    >>>a = [1,2,3]
    >>> b = [4,5,6]
    >>> c = [4,5,6,7,8]
    >>> zipped = zip(a,b)     # 打包为元组的列表
    [(1, 4), (2, 5), (3, 6)]
    >>> zip(a,c)              # 元素个数与最短的列表一致
    [(1, 4), (2, 5), (3, 6)]
    >>> zip(*zipped)          # 与 zip 相反,可理解为解压,返回二维矩阵式
    [(1, 2, 3), (4, 5, 6)]

     cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

    返回值:如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

    但是Python 3.X 的版本中已经没有 cmp 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有:

    operator.lt(a, b)
    operator.le(a, b)
    operator.eq(a, b)
    operator.ne(a, b)
    operator.ge(a, b)
    operator.gt(a, b)

     3.python 判断一个字符串是否重现(后面跟前面的一致)

     1 a = input("Please input a string ... ")
     2 plalindrome = False
     3 j = 1
     4 while len(a) >= 2 and j <= len(a)-1:
     5     if a[j-1] == a[j] and j <= len(a) - 2: 
     6         print(a[j-1] + a[j])
     7         plalindrome = True
     8     if j == len(a)-1 and a[j] == a[j-1]:
     9         print(a[j-1] + a[j])
    10         plalindrome = True
    11     j = j + 1
    12 if not plalindrome: print('No plalindrome!')

     4.接受一个字符,在其后面加一个反向的拷贝,构成一个回文字符串.

     1 s=input("please enter string:
    ")     #abc
     2 s1=[]
     3 s2=[]
     4 for i in s:
     5     s1.append(i)
     6 s2=s1.copy()     #将s1复制给s2
     7 s2.reverse()       #将s2进行翻转
     8 for i in s2:
     9     s1.append(i)   #将s2的逐个字符串添加到s1中
    10 st=''.join(s1)      #将最终的s1列表转换为字符串,引号中是字符之间的分割符
    11 print(st)             #abccba
    View Code

     以上有一种超简单的方法:

    1 s = input("please enter string:
    ")
    2 print a + a[::-1]       #使用连接操作符以及索引
    View Code

     5.给出一个整数值,返回代表该值的英文。

     1 #!/usr/bin/env python
     2 units =['zero','one','two','three','four','five','six','seven','eight','nine','ten',
     3 'eleven','twelve','thirteen','forteen','fifteen','sixteen','seventeen',
     4 'eighteen','nineteen']
     5 tens =['twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety']
     6 hundreds = ['hundreds']
     7 
     8 while True:
     9     myInput = input("Enter the num -->(input 'quit' to quit):")       #字符串输入
    10     if myInput == 'quit':
    11         break
    12     myInput_num = int(myInput)       #将字符串输入转整型
    13     Input_num = []                   #列表
    14 
    15     for i in myInput:             #将输入的字符串转化为列表
    16         Input_num.append(int(i))
    17 
    18     if myInput_num < 20:                  #20以下的英文输出
    19         print(units[myInput_num])
    20     elif myInput_num < 100:             #100以下的输出
    21         if Input_num[1] == 0:
    22             print(tens[Input_num[0] - 2])
    23         else:
    24             print((tens[Input_num[0] - 2] + '-' + units[Input_num[1]]))
    25     elif myInput_num < 1000:
    26         if (Input_num[2] == 0 and Input_num[1] == 0):     #第二、三位等于0(注:此语句需要放在最前,如果后两句先执行的话,会包含这种情况,最后一位会输出zero)
    27             print(units[Input_num[0]] + ' ' + 'hundreds')
    28         elif Input_num[1] == 0:       #第二位等于0
    29             print(units[Input_num[0]] + ' ' + 'hundreds' + ' '+ 'and' + ' ' + units[Input_num[2]])
    30         elif Input_num[2] == 0:     #第三位等于0
    31             print(units[Input_num[0]] + ' ' + 'hundreds' + ' '+ 'and' + ' ' + tens[Input_num[1] - 2])
    32         else:                       #每一位都不等于0
    33             print(units[Input_num[0]] + ' ' + 'hundreds' + ' '+ 'and' + ' ' + tens[Input_num[1] - 2] + '-' + units[Input_num[2]])
    View Code

     6.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转.

     1 myString = input("Enter a String: 
    ") 
     2 
     3 for lett in range(len(myString)): 
     4 
     5     if myString[lett].isupper(): 
     6 
     7         myString = "%s%s%s" % (myString[:lett],myString[lett].lower(),myString[lett+1:]) 
     8 
     9     elif myString[lett].islower(): 
    10 
    11         myString = "%s%s%s" % (myString[:lett],myString[lett].upper(),myString[lett+1:]) 
    12 
    13     else: 
    14 
    15         pass 
    16 
    17 print(myString) 
    View Code

     str.swapcase() 方法用于对字符串的大小写字母进行转换。返回值:返回大小写字母转换后生成的新字符串。

    7.创建一个名字为findchr(string, char)的函数,在字符串string 中查找字符char,找到就返回该值的索引,否则返回-1.

    创建一个名字为rfindchr(string, char)的函数,在字符串string 中从右开始查找字符char,找到就返回该值的索引,否则返回-1.

    创建一个名字为subchar(string, origchar, newchar),如果找到匹配的字符就用新的字符替换原先字符.返回

    修改后的字符串.

     1 #!/usr/bin/env python
     2 def findchr(string,char):
     3     if char not in string:
     4          print("-1")
     5     else:
     6         charlen = len(char)
     7         i = 0
     8         while i< len(string):
     9             if string[i:i+charlen] == char:
    10                 print(i)
    11             i+=1
    12 
    13 
    14 def rfindchr(string,char):
    15     if char not in string:
    16         print("-1")
    17     else:
    18         mystring=string[::-1]
    19         charlen = len(char)
    20         i = 0
    21         while i < len(mystring):
    22             if mystring[i:i+charlen] == char[::-1]:
    23                 print(len(mystring)-charlen-i) 
    24 
    25             i+=1
    26 
    27 
    28 def subchr(string,origchar,newchar):
    29     if origchar not in string:
    30          print("-1")
    31     else:
    32         charlen = len(origchar)
    33         i = 0
    34         while i< len(string):
    35             if string[i:i+charlen] == origchar:
    36                 print(string.replace(origchar,newchar))
    37             i+=1
    38 
    39 
    40 if __name__ == "__main__": 
    41 
    42     mystring = input('Please Enter a string ... 
    ') 
    43 
    44     mychar = input('Please Enter a string or char ... 
    ')
    45  
    46     newchar = input("Please Enter another string or char ... 
    ") 
    47    
    48     findchr(mystring, mychar) 
    49     rfindchr(mystring, mychar) 
    50     subchr(mystring,mychar,newchar)
    View Code

     8.创建一个字典,并把这个字典中的键按照字母顺序显示出来;并根据已按照字母顺序排序好的键,显示出这个字典中的键和值;然后再根据已按照字母顺序排序好的字典的值,显示出这个字典中的键和值。

     1 d={}
     2 d["name"]="jane"
     3 d["age"]="18"
     4 d["sex"]="gril"
     5 print(d)
     6 
     7 d_key=sorted(d)
     8 
     9 for key in d_key:
    10     print("%s : %s" % (key,d[key]))
    11 
    12 print(d.items())
    13 
    14 for i,j in sorted(d.items(),key=lambda value:value[1]):  
    15     print("%s : %s" % (i,j) )
    View Code

     9.给定两个长度相同的列表,用这两个列表里的所有数据组成一个字典。

    1 n = [1,2,3,4,5,6,7,8,9]
    2 s = ["abc","def","ghi","jkl","mno","pqr","stu","vwx","yz"]
    3 d = {}
    4 for i in range(len(n)):
    5     d.setdefault(n[i],s[i])
    6 print(d)
    View Code

     10.颠倒字典中的键和值。用一个字典做输入,输出另一个字典,用前者的键做值,前者的值做键。

    1 d = {"1":"abc","2":"def","3":"ghi"}
    2 d1 = {}
    3 for i in d:
    4     d1.setdefault(d[i],i)
    5 print(d1)
    View Code

     11.创建一个简单的雇员姓名和编号的程序,让用户输入一组雇员姓名和编号,可按照姓名或者编号排序输出。

     1 def sort_db(db):  
     2     temp = {}  
     3     dict_db = {}  
     4     key = input('How to sort list:name or id? ')  
     5     if key == 'id':  
     6         for line in db:  
     7             temp.setdefault(line[1],line[0])  
     8     else:  
     9         for line in db:  
    10             temp.setdefault(line[0],line[1])  
    11     db2 = sorted(temp.items(),key=lambda d:d[0]) 
    12     print(db2) 
    13     for i in db2:  
    14         print(i[0],i[1]) 
    15         dict_db.setdefault(i[0],i[1])  
    16     print('
    ')
    17   
    18 if __name__ == '__main__':  
    19     db = [] 
    20     print("enter 0 can exit!") 
    21     print('Please input name,id')  
    22     while True:  
    23         line = input()  
    24         if len(line)==1 and int(line)==0:  
    25             break  
    26         date = line.split(",")  
    27         #print (date)
    28         db.append(date)  
    29         #print(db)
    30     sort_db(db)
    View Code
  • 相关阅读:
    wordpress程序打开太慢的解决方案(一步搞定)
    Emeditor代码编辑器常见的正则表达式总结
    网站关键词排名突然消失的原因正在努力侦破
    如何禁止百度对网站进行转码
    【web前端开发】浏览器兼容性处理大全
    导航悬浮于顶部代码学习
    用最简单的代码写出banner图轮播效果
    这段时间大量网站被k的原因分析
    Python的lambda学习
    随机数生成验证码
  • 原文地址:https://www.cnblogs.com/christal-11/p/7650085.html
Copyright © 2011-2022 走看看