python習題20190130


#encoding=utf-8

'''
一家商場在降價促銷。如果購買金額50-100元(包含50元和100元)之間,會給10%的折扣,如果購買金額大於100元會給20%折扣。編寫一程序,詢問購買價格,再顯示出折扣(10%或20%)和最終價格
'''

def print_zekou():
    aount = int(input("請輸入你購買的金額:"))
    if aount < 50:
        print("不好意思你購買的金額沒有折扣,需要支付的金額為:",aount)

    if aount >= 50 and aount <= 100:
        print("你購買的金額為 %d,折扣為:%d,需要支付的金額為%0.2f"%(aount,9,aount*0.9))
    if aount > 100:
        print("你購買的金額為 %d,折扣為:%d,需要支付的金額為%0.2f"%(aount,8,aount*0.8))

'''
10、求1 + 2 + 3 +….+100
'''
def print_num_yibai():
    num = 0
    for i in range(1,101):
        num += i
    print("1 + 2 + 3 +….+100=",num)

'''
判斷一個數n能否同時被3和5整除
'''
def print_n_sanhuowu():
    num = int(input())
    if num ==0:
        return 0
    if num % 3==0 and num %5 ==0:
        print("能被3和5整除")
    else:
        return 0

'''
一個足球隊在尋找年齡在10到12歲的小女孩(包括10歲和12歲)加入。編寫一個程序,詢問用戶的性別(m表示男性, f表示女性)和年齡,然后顯示一條消息指出這個人是否可以加入球隊,詢問10次后,輸出滿足條件的總人數
'''
def print_f():
    count = 0
    for i in range(10):
        num = input("m表示為男性,f表示為女性:")
        if num == 'f':
            sunm = int(input("請輸入年齡:"))
            if sunm >=10 and sunm <= 12:
                print("恭喜你可以加入球隊!!")
                count += 1

        else:
            print("不好意思,我們不需要男生!!")
    print("加入球隊的總人數為:",count)

'''
長途旅行中,剛到一個加油站,距下一個加油站還有200km,而且以后每個加油站之間距離都是200km。編寫一個程序確定是不是需要在這里加油,還是可以等到接下來的第幾個加油站再加油
'''
def print_km():
    youxiang = int(input("你的油箱多大?,單位升:"))
    shxia = float(input("目前你的油箱還有多少油,按百分比,比如一半就是0.5:"))
    lucheng = int(input("你的車每升油能走多遠:"))
    syou = (youxiang*shxia-5)*lucheng
    if syou < 200:
        print("在當前的加油站要加油")
    else:
        print("第%d個加油站加油"%(syou/200))

#20190118
'''
現有面包、熱狗、番茄醬、芥末醬以及洋蔥,數字顯示有多少種訂購組合,其中面包必訂,0不訂,1訂,比如10000,表示只訂購面包
'''
def print_ding():
    count = 0
    for a in '1':
        for b in '01':
            for c in '01':    
                for d in '01':
                    print(a+b+c+d)
                    count += 1
    print("有%d種組合"%count)
    
'''
基於上題:給出每種食物的卡路里(自定義),再計算出每種組合總共的卡路里
'''
def print_ding_kaluli():
    count = 0
    for a in '1':
        for b in '01':
            for c in '01':    
                for d in '01':
                    print(a+b+c+d,"不同組合的卡路里為",int(a)*100+int(b)*200+int(c)*300+int(d)*400)
                    count += 1

'''
輸入5個名字,排序后輸出
'''
def print_fivename_sorted():
    num = input("請輸入5個名字,用英文都好隔開:")
    num_list = num.split(',')
    print(sorted(num_list))

'''
實現一個簡單的單詞本
- 功能:
- 可以添加單詞和詞義,當所添加的單詞已存在,讓用戶知道;
- 可以查找單詞,當查找的單詞不存在時,讓用戶知道;
- 可以刪除單詞,當刪除的單詞不存在時,讓用戶知道;
- 以上功能可以無限制操作,直到用戶輸入bye退出程序。

'''
def print_smiple_danciben():
    num_dict = {}
    while True:
        num = input("請輸入你要進行的操作(add:添加單詞,select:查找單詞,del:刪除單詞,bye:退出程序):")
        if num =='bye':
            break
        if num == 'add':
            num_add = input("輸入你要添加的單詞:")
            if num_add in num_dict.keys():
                print("你輸入的單詞已存在!!")
                continue
            else:
                num_value = input("輸入你添加的單詞的詞義:")
            num_dict[num_add] = num_value
            
        if num == 'select':
            num_select = input("輸入你要查找的單詞:")
            if num_select not in num_dict.keys():
                print("你要查詢的單詞不存在!!")
            else:
                print(num_select," 單詞詞義為:",num_dict[num_select])
        if num == 'del':
            num_del = input("輸入你要刪除的單詞:")
if num_del not in num_dict.keys(): print("你要刪除的單詞不存在!!") else: del num_dict[num_del] print("已刪除成功") if num == 'bye': print("程序已結束,感謝你的使用") break if num !='add' and num !='del' and num != 'select' and num != 'bye': print("輸入有誤,請輸入正確的操作符!!") continue ''' 輸入一個正整數,輸出其階乘結果 ''' def print_jiecheng(n): num = 1 if not isinstance(n,int): return "輸入的不是數值!!" if n == 0: return '1' for i in range(1,n+1): num *= i print(n,"的階乘為:",num) ''' 輸入3個數字,以逗號隔開,輸出其中最大的數 ''' def print_three_num(): num = input("請輸入三個數值並用英文逗號隔開:") num_list = num.split(",") num_son = int(num_list[0]) for i in num_list: if num_son < int(i): num_son = int(i) print("最大的數為:",num_son) ''' 輸入一個年份,輸出是否為閏年 是閏年的條件: 能被4整數但不能被100整除,或者能被400整除的年份都是閏年 ''' def print_runnian(): num_year = int(input("請輸入你要判斷的年份:")) if (num_year %4 ==0 and num_year %100 !=0) or num_year%400 == 0: print(num_year,"是閏年!") else: print(num_year,"不是閏年!") #20190121 ''' 求兩個正整數m和n的最大公約數 ''' def print_max(n,m): num_list=[] if n%m == 0: return m if m%n == 0: return n for i in range(1,n+1): if n%i == 0 and m%i ==0: num_list.append(i) for i in range(1,m+1): if n%i == 0 and m%i ==0: num_list.append(i) return max(num_list) ''' 習題1:設定一個用戶名和密碼,用戶輸入正確的用戶名和密碼,則顯示登錄成功,否則提示登錄失敗,用戶最多失敗3次,否則退出程序。 提示:使用while或者for來限定重試的次數,使用input獲取用戶輸入使用 ==判斷用戶的用戶名和密碼。 ''' def print_username_passs(): num_one = 0 num_two = 3 while num_one < 3: num_username = input("請輸入用戶名:") num_passwed = input("請輸入用戶密碼:") if num_username == 'testname' and num_passwed == 'testpass': return "登錄成功" else: print("登錄失敗!!") num_two -= 1 print("剩下%d次機會"%num_two) num_one += 1 print("三次機會已經全部用完!!") return '' ''' 習題2:自己實現一個函數,在一句話中查找某個單詞的算法,存在返回索引號,否則返回False 提示:使用句子中的坐標遍歷句子的每一個位置,使用查找單詞的長度結合使用切片來查找單詞。例如:s[i:i+len(單詞)] ''' def print_find_word(word,num): for i in range(len(word)): #print(i) #print(word[i:len(num)+i]) if len(word[i:]) <= len(num): print("沒有找到!!") return 0 elif word[i:len(num)+i] == num: #print(word[i:len(num)-1]) print("索引:",i+1) return 1 ''' 習題3:隨機生成一個整數,1-100之間你最多猜5次,如果猜大了,提示大了小了,提示小了,猜對了,提示猜中。5次都沒猜中,就猜沒猜中。 ''' import random def print_random_cai(): try: num_random = random.randint(1,100) print(num_random ) for i in range(5): num_one = int(input("請輸入你要猜的數值:")) if num_one > num_random: print("猜大了!!") continue if num_one == num_random: print("猜中了!!") return 1 if num_one < num_random: print("猜小了!!") continue print("沒猜中!!") except Exception as e: print(e) ''' 習題4:使用while,計算隨機數之和,超過100的時候,停止程序。隨機數1-20的范圍產生,要求記錄一下產生的隨機數,以及最后的和,以及隨機數的個數。 ''' def print_random_yibai(): num_one = 0 num_list = [] while num_one < 100: num_random = random.randint(1,20) num_list.append(num_random) num_one += num_random print("產生的隨機數為:",num_list,"最后的和為:",num_one,"隨機數的個數為:",len(num_list)) ''' 習題5:遍歷字符串、列表,分別基於位置和和基於字符遍歷 ''' def print_str_list(s): for i in s: print(i) for i in range(len(s)): print(s[i]) #20190122 ''' 習題6:遍歷一個列表中的嵌套列表和元組的所有元素,將1-12的數字進行輸出![[[1,2,3],4,5],7,8,(9,10,(11,12))] ''' def print_list_tuple(): num_tuple = [[[1,2,3],4,5],7,8,(9,10,(11,12))] for i in num_tuple: if isinstance(i,(list,tuple)): for j in i: if isinstance(j,(list,tuple)): for c in j: print(c) else: print(j) else: print(i) ''' 判斷一個數是否是素數 ''' def print_sushu(n): if n == 1 or n == 2: print("是素數") return 0 for i in range(2,n): if n%i == 0: print("不是素數") return 1 else: print("是素數") return 0 ''' 求100以內的素數和 ''' def print_yibai_sushu(): num_one = 0 for i in range(3,101): num_two = print_sushu(i) print(i) if num_two == 0: num_one += i return num_one ''' 使用 for 的方式,求一下100以內奇數之和 ''' def print_for_jishu(): num_one = 0 for i in range(1,101,2): num_one += i print(num_one) ''' 用戶輸入多個數字,當輸入偶數的時候求和,輸入奇數,不求和,輸入.(一個點)的時候結束求和,打印求和結果 ''' def print_oushu_qiuhe(): try: num_two = 0 while True: num_one = input("輸入數值,偶數求和,奇數不求和,\".\"結束求和:") if num_one == '.': print(num_two) break elif int(num_one)%2 == 0: num_two += int(num_one) except Exception as e: print(e) ''' 嵌套循環輸出10-50中個位帶有1-5的所有數字: 方法1:數字和10取余,判斷是否大於0並且小於等於5 方法2:將數字轉換為str,取各位的字符判斷字符是否在1-5內。 方法3:拼接數字 ''' def print_shidegewei(): try: num_list = [] for i in range(10,51): if i%10 >0 and i%10 <= 5: print(i) num_list.append(i) return num_list except Exception as e: print(e) ''' 輸入3個數字,達到3個數字求和,結束程序 ''' def print_three_num(): try: num_one = 0 for i in range(3): num = int(input("請輸入數值")) num_one += num return num_one except Excepyion as e: print(e) ''' 用戶輸入不同的數據,當輸入的數據達到3個數字的時候,求和結束程序。(數字可以是整數) 提示:判斷是否整數的方法,isdigit() 遍歷所有的輸入數據,判斷是否在0-9的字符串范圍內 ''' def print_three_number(): try: counts = 0 num_one = 0 while True: num = input("請輸入:") if num.isdigit(): counts += 1 num_one += int(num) if counts == 3: return num_one except Exception as e: print(e) ''' 用嵌套列表的方式,遍歷輸出一個矩陣 ''' def print_qiantao(): num_list = [[1,2,3],[4,5,6],[7,8,9]] for i in num_list: for j in i: print(j) ''' ''' def print_list_num(): try: num_list = [[1,2,3],[4,5,6],[7,8,9]] num_one = 0 num_two = 0 for i in range(len(num_list)): for j in range(len(num_list[i])): if i == j: num_one += num_list[i][j] num = len(num_list[i])-1-i num_two += num_list[i][num] print("正對角之和:",num_one,"反對角之和:",num_two,) except Exception as e: print(e) ''' 求以下矩陣四邊元素之和 l = [ [1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5] ] ''' def print_sibinayuanshuzhihe(): num_list = [[1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5] ] num_one = 0 for i in range(len(num_list)): if i == 0 or i == len(num_list)-1: for j in num_list[i]: num_one += j else: num_one += num_list[i][0] + num_list[i][len(num_list)-1] continue print(num_one) ''' 統計單詞中包含字母a的單詞個數 ''' def print_danci_geshu(n): num = 0 num_one = n.split() for i in num_one: if 'a' in i: num += 1 print(num) ''' 成績等級判斷 利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示, 60-89分之間的用B表示,60分以下的用C表示 ''' def print_student_score(n): if n >= 90: print("A") if n >= 60 and n < 90: print("B") if n < 60: print("C") #20190125 ''' 實現數學中多項式求和公式的打印 比如:a6x^6 + a5x^5 + a4x^4 + a3x^3 + a2x^2 + a1x^1 + a0 ''' def print_duoxiangshi(n): num_str = '' num_list = range(0,n+1) for i in num_list[::-1]: if i ==0: num_str += 'a'+str(i) else: num_str += 'a'+str(i)+'x'+'^'+str(i)+'+' print(num_str) ''' 統計名字列表中,各名字的首字母在名字列表中出現的次數 ''' def print_shouzimu(): names = ["huhongqiang","zhangsan","lisi","wangwu","wuda","ziliao"] num_dict = {} for i in names: if i[0] in num_dict.keys(): num_dict[i[0]] += 1 else: num_dict[i[0]] = 1 print(num_dict) ''' 輸入三個數,判斷是否能構成三角形 能構成三角形三邊關系: 三邊都大於零 兩邊之和大於第三邊,兩邊之差小於第三邊 ''' def print_sanjiao(): num_one = int(input("請輸入第一邊:")) num_two = int(input("請輸入第二邊:")) num_three = int(input("請輸入第三邊:")) if num_one ==0 or num_two ==0 or num_two == 0: return "有一邊為0,不是三角形!!" if not (num_one+num_two >num_three and num_one+num_three >num_two and num_two + num_three >num_one): return "任意兩邊之和沒有大於第三邊,不是三角形!!" if not (num_one -num_two <num_three or num_one - num_three or num_two - num_three < num_one): return "任意兩邊相減沒有小於第三邊,不是三角形!!" else: return "是三角形" ''' 實現字典的fromkeys方法 例如: seq = ('name', 'age', 'sex') dict = dict.fromkeys(seq, 10) print "New Dictionary : %s" % str(dict) 結果:New Dictionary : {'age': 10, 'name': 10, 'sex': 10} ''' def print_dict_fromkeys(seq,n): num_dict = {} for i in seq: num_dict[i] = n return num_dict ''' 鍵盤讀入一字符串,逆序輸出 ''' def print_sorted(): num_str = input("請輸入一串字符串:") print(num_str[::-1]) ''' 讀入一個整數n,輸出n的階乘 ''' def print_jiecheng(n): num_str = '' if n ==0 or n ==1: return str(n) for i in range(1,n+1): if i == n: num_str += str(n) else: num_str += str(i)+'x' return num_str ''' 打印1/2, 1/3, 1/4,….1/10 ''' def print_chushi(n): if n ==0 or n == 1: return str(n) for i in range(2,n+1): print('1/%d'%i,end= ',') ''' 寫一個函數實現一個數學公式 a**b ''' def print_jiechenggshi(a,b): return a**b ''' 輸入數字a,n,如a,4,則打印a+aa+aaa+aaaa之和 ''' def print_a_n(a,n): num_str = '' for i in range(1,n+1): if i==n: num_str += a*i else: num_str += a*i+"+" return num_str ''' 求100個隨機數之和,隨機數要求為0—9的整數 ''' import random def print_suijishu(): num_int = 0 for i in range(100): num_int += random.randint(1,9) return num_int ''' 要求在屏幕上分別顯求1到100之間奇數之和與偶數之和 ''' def print_jishu_oushu_zhihe(): num_strou = '' num_strji = '' num_ou = 0 num_ji = 0 for i in range(1,101): if i %2 == 0: num_ou += i num_strou += str(i)+'+' if i %2 != 0: num_ji += i num_strji += str(i)+'+' print('偶數之和:',num_ou,'奇數之和:',num_ji) print(num_strou) print(num_strji) ''' 輸入10個數,並顯示最大的數與最小的數 ''' def print_max_min_shu(lista): num_max = lista[0] num_min = lista[0] for i in lista: if i > num_max: num_max = i elif i<num_min: num_min = i print("最大的數:",num_max,"最小的數:",num_min) ''' 給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出 各位數字 ''' def print_len_sorted(n): num_str = str(n) print(len(num_str)) print(num_str[::-1]) ''' 求1000以內的所有水仙花數(水仙花數:它的每個位上的數字的 n 次冪 之和等於它本身,例如:1^3 + 5^3+ 3^3 = 153) ''' def print_shuixianhua(): num_int = 0 num_list = [] for i in range(1,1001): num_str = len(str(i)) for j in str(i): num_int += int(j)**num_str if num_int == int(i): num_list.append(i) num_int = 0 return num_list ''' 編程求s=1!+2!+3!+…..+n! ''' def print_meigeshu_jiecheng(n): num_int = 1 num_num = 0 for i in range(1,n+1): for j in range(1,i+1): num_int *= j num_num += num_int num_int = 1 print(num_num) ''' 鈔票換硬幣 把一元鈔票換成一分、二分、五分硬幣(每種至少一枚),有多種換法,分 別有哪些? ''' def print_huangyingbi(): num_one = 100-1-2-5 num_list = [] num_num = 0 for i in range(int(num_one/1)): for j in range(int(num_one/2)): for k in range(int(num_one/5)): if (i+2*j+k*5) == num_one: num_num += 1 num_list.append((i,j,k)) print(num_num) print(num_list) ''' 自己實現在一句話中查找某個單詞的算法,存在返回索引號,否則返回False ''' def print_find_word(stra,strb): length = len(strb) for i in range(len(stra)): if stra[i:i+length] == strb: return i return False #print(print_find_word("you are a beautiful girl good","goods")) ''' 讀入一個十進制整數,實現十進制轉二進制算法將其轉成二進制數 要求:不能使用現成進制轉換函數,自己寫代碼實現 ''' def print_shijinzhi_erjinzhi(n): num_str = '' num_int = n while True: #print(num_str) num_str += str(int(num_int%2)) num_int = int(num_int/2) if num_int == 0: return num_str[::-1] ''' 讀入一組數字,然后把每組數字加1后輸出,比如 123,輸出234 ''' def print_shuzijiayi(n): num_num = '' for i in str(n): num_num += str(int(i)+1) return num_num ''' 隨機生成10位密碼 包含大小寫、數字 ''' import random import string def print_lower_upper_digit(): num_lower = list(string.ascii_lowercase) random.shuffle(num_lower) num_upper = list(string.ascii_uppercase) random.shuffle(num_upper) num_digit = list(string.digits) random.shuffle(num_digit) num_num = ''.join(num_lower[:4]+num_upper[:4]+num_digit[:4]) print(num_num) #20190128 ''' 刪除一個字符串中的小寫字母(map) ''' import string def print_upper(s): num_str = '' for i in s: if i in string.ascii_uppercase: num_str += i return num_str ''' 大於5的數字輸出(filter) ''' def print_dayu_five(num): for i in num: if int(i)>5: print(i) ''' 找到列表中第二大的數,可以用多種方法解決 思路: 找到最大的刪除掉,再找最大的 排好序找倒數第二個 遍歷,聲明兩個變量,一個存最大的,一個存第二大的,然后逐一對比 ''' def print_sonunt_shu(num): num_one = num[0] num_two = num[0] for i in num: if i>num_one: num_two = num_one num_one = i print(num_two) print(sorted(num)[-2]) num_max = max(num) num.remove(num_max) print(max(num)) ''' python代碼得到2個列表的交集與差集 不許用set 交集思路:遍歷list1,判斷是否在list2中,在的話,則存入一個列表中。 差集思路:分別遍歷list1和2,如果不在對方的list中,則存入一個列表中 ''' def print_jiaoji_chaji(lista,listb): num_inlist = [] num_notinlist = [] for i in lista: if i in listb: num_inlist.append(i) else: num_notinlist.append(i) for j in listb: if j in lista: continue elif j in num_notinlist: continue else: num_notinlist.append(j) print("交集為:",num_inlist) print("差集:",num_notinlist) ''' 求一個字符串中的字母個數函數需判斷傳入參數的類型。必須使用ascii來判斷是否字母 ''' import string def print_str_geshu(): num_str = input("輸入一串字符串:") num_number = 0 for i in num_str: #if i in string.ascii_letters: if (ord(i) >= 97 and ord(i) <= 122) or (ord(i)>=65 and ord(i)<=90): num_number += 1 print("傳入的字符串中字母的個數為:",num_number) ''' 寫一個函數,這個函數要計算浮點數乘法的一萬次相乘后的時間耗時,浮點數可以使用隨機小數 ''' import time,random def print_func(n): start_time = time.time() for i in range(n): random.random()*random.random() print(time.time()-start_time) ''' 定義函數add(a,b)要求有個值是result來存結果 1 a,b 數字,相加 2 a,b 字符串,就當做字符串相加 3 a,b 如果list就當list相加 ''' def print_add(a,b): result = a+b print(result) ''' 函數參數傳入5個字母,聲明一個可變參數的函數,拼成一個單詞 ''' def print_pingjie(*agr): result = '' for i in agr: result += i print(result) ''' 使用必填參數、默認參數、可變元組參數、可變字典參數(value)計算一下單詞的長度之和 ''' def print_dancichangdu(a,b='ss',*agr,**key): result = '' result += a result +=b for i in agr: result += i for v in key.values(): result += v print('a:',a) print('b:',b) print('agr:',agr) print('key:',key) print(result) ''' 使用map把[1,2,3]變為[2,3,4] ''' def print_map_func(x): return x+1 #print(list(map(print_map_func,[1,2,3]))) ''' 使用map,大寫變小寫 ''' def print_upper_lower(): print(list(map(lambda x:x.lower(),'ABC'))) print(list(map(lambda x:chr(ord(x)+32),'ABC'))) ''' 打印2000-3000之間被7整除但不被5整除的數,以,(逗號)分隔 ''' def print_five_seven(): for i in range(2000,3000): if i%7 ==0 and i%5 !=0: print(i,end=',') ''' 2、輸出9*9口訣表 ''' def print_nine_nine(): for i in range(1,10): for j in range(1,i+1): print(str(i)+'*'+str(j)+'=',i*j,' ',end='') print() ''' 計算1 - 1/2 + 1/3 - 1/4 + … + 1/99 - 1/100 + …直到最后一項的絕對值小於10的-5次冪為止 ''' def print_fivemi(): result = 0.0 n = 1 while True: if abs(1/n) < pow(10,-5): break else: if n%2 ==1: result += 1/n n += 1 else: result -= 1/n n += 1 print(result) ''' 編程將類似“China”這樣的明文譯成密文, 密碼規律是:用字母表中原來 的字母后面第4個字母代替原來的字母,不能改變其大小寫,如果超出了字母 表最后一個字母則回退到字母表中第一個字母 ''' import sys def print_mingwen_miwen(s): result = '' if not isinstance(s,str): sys.exit(1) for i in s: if (i >= 'a' and i<='v') or (i >= 'A' and i<='V'): result += chr(ord(i)+4) else: result += chr(ord(i)-22) print(result) ''' 輸出以下如下規律的矩陣 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 ''' def print_juzh(): for i in range(1,5): for j in range(1,6): print(i*j,end=' ') print() ''' 對一個列表求和,如列表是[4, 3, 6],求和結果是 [4, 7, 13],每一項的值都等與該項的值加上前一項的值 ''' def print_liebiaohe(lista): result = 0 num_list = [] if not isinstance(lista,list): return -1 for i in lista: num_list.append(i+result) result += i print(num_list) ''' 一個字符串 list,每個元素是 1 個 ip,輸出出現次數最多的 ip ''' def print_ip(): num_list = ["168.1.1.1","168.1.1.1","168.1.1.2","168.1.1.3"] num_dict = {} for i in num_list: if i not in num_dict.keys(): num_dict[i] = 1 else: num_dict[i] += 1 #一句可以搞定 #num_dict[i] = num_list.count(i) for k,v in num_dict.items(): if v == max(num_dict.values()): print("出現次數最多的IP:",k) ''' 實現一個簡易版的計算器,功能要求:加、減、乘、除,支持多數同時進行計算 ''' def print_jisuanqi(*agr): num = input("請輸入你需要進行的操作,乘法*,除法/,加法+,減法-") result = 0.0 if num == '*': result = 1 for i in agr: result *=i elif num == '/': result = 1 for i in agr: result /= i elif num == '-': result = agr[0] for i in agr[1:]: result -= i elif num == '+': for i in agr: result += i else: print("輸入操作符有誤!!") print(result) ''' 有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和 ''' def print_qian_ershixiangzhihe(): num_one = 0 num_two = 1 result = 0 num = 0 num_result = 0 for i in range(1,21): result = num_one+num_two num = num_two + result num_result += num/result num_one = num_two num_two = result print("result:",result,'num:',num) print(num_result) ''' 畫等(腰)邊三角形(實心、空心) ''' def print_sanjiaoxing(): for i in range(1,7): print('\n') for k in range(i,7): print(' ',end='') for j in range(i): print('* ',end='') for r in range(1,7): print('\n') for s in range(r,7): print(' ',end='') for l in range(r): if r >= 3 and r < 6: if l == 0 or l==r-1: print('* ',end='') else: print(' ',end='') else: print('* ',end='') ''' 畫倒等邊三角形 ''' def print_daosanjiao(): for i in range(1,7): print() for k in range(i): print(' ',end='') for j in range(i,7): print(' *',end = '') #20190130 ''' 要求實現一函數,該函數用於求兩個集合的差集,結果集合中包含所有屬於第一個集合但不屬於第二個集合的元素 ''' def print_chaji(lista,listb): num_list = [] for i in lista: if i not in listb: num_list.append(i) print("lista:",lista) print("listb:",listb) print("num_list:",num_list) ''' 找出一段句子中最長的單詞及其索引位置,以list返回 ''' import string def print_len_zuichang(stra): for i in stra: if i in string.punctuation: stra = stra.replace(i,' ') stra_list = stra.split() print(stra_list) str_word = sorted(stra.split(),key=len,reverse=True)[0] #直接一步可以求出索引: print(stra.find(sorted(stra.split(),key=len,reverse=True)[0])) print(str_word) str_index = 0 str_len = len(str_word) for j in range(len(stra)): if stra[j:j+str_len] == str_word: str_index = j return str_word,str_index ''' 返回序列中的最大數 序列有數組、列表、字符串 ''' def print_xulie(stra): if not isinstance(stra,(str,list,tuple)): return -1 num_one = float(stra[0]) if isinstance(stra,str): for i in stra: if float(i) > num_one: num_one = float(i) else: for j in stra: if float(j) > num_one: num_one = float(j) return num_one ''' 把一個字典的 key,value互換 ''' def print_jiaohuankeyvalue(dicts): dicta = {} for k,v in dicts.items(): dicta[v] = k return dicta ''' 統計列表中列表的數量 ''' def print_list_list(lista): num_list = 0 for i in lista: if isinstance(i,list): num_list += 1 return num_list #一句話搞定 #len(list(filter(lambda x:isinstance(x,list),[1,[2],[3],"a"]))) ''' 刪除一個列表里面所有的4 ''' def print_del_four(lista): for i in range(lista.count(4)): lista.remove(4) return lista ''' 刪除列表中重復元素 ''' def print_chfuyuansu(lista): for i in lista: for j in range(lista.count(i)-1): lista.remove(i) return lista ''' 找出boy是第幾個單詞 ''' def print_boy(stra): print(stra.split().index('boy')+1) ''' 求出s中長度最長的字符串 ''' def print_s_len(stra): print(sorted(stra.split(),key = len,reverse = True)[0]) ''' L中分別按照學生姓名和學生成績排序 ''' def one(s): return s[0] def two(s): return s[1] def print_paixuone(s): print(sorted(s,key=one)) print(sorted(s,key=two)) ''' 按照句子中每個單詞的首字母進行排序,不區分大小寫 ''' def first_letter(s): return s[0].lower() def print_shouzimu(s): lista = s.split() lista.sort(key=first_letter) print(lista) ''' 按照字符串每個數字的和進行排序 ''' def sum(s): result = 0 for i in s: result += int(i) return result def print_sum(s): lista = s.split() lista.sort(key=sum,reverse = True) print(lista) ''' 將兩個list ,連接成[(1,4),(2,5),(3,6)] ''' def print_two_list(lista,listb): num_list = [] for i in range(len(lista)): num_list.append((lista[i],listb[i])) print(num_list) ''' 生成二維數組[[0, 1, 2], [3, 4, 5], [6, 7, 8]] ''' def print_erwei_list(): num_list = [] num = 0 for i in range(3): num_num = [] for j in range(3): num_num.append(num) num += 1 num_list.append(num_num) print(num_list) ''' 二維矩陣轉置 ''' def print_juzhengzhuanzhi(): a=[ [1,2,3], [4,5,6], [7,8,9], [10,11,12] ] num_list = [] for i in range(3): num_num = [] for j in a: num_num.append(j[i]) num_list.append(num_num) print(num_list) ''' 刪除二維矩陣的第1列 ''' def print_shchujuzhdiyilie(): a=[ [1,2,3], [4,5,6], [7,8,9], [10,11,12] ] num_list = [] for i in a: num_num = [] for j in range(1,3): num_num.append(i[j]) num_list.append(num_num) print(num_list) ''' 把一個列表偶數位作為key,奇數位作為value,轉換成字典 ''' def print_oushulie_key(lista): num_dict = {} for i in range(1,len(lista),2): num_dict[lista[i]] = lista[i-1] print(num_dict) ''' 有一個長度為101的數組,存在1-100的數字,有一個是重復的,找出這個重復的數字 ''' def print_chfushuzi(lista): for i in lista: if lista.count(i) >=2: print(i) break ''' 兩個長度相同的list,一個里面的做字典的key,一個里面做字典的value,請寫個函數實現 ''' def print_dict_key_value(lista,listb): num_dict = {} for i in range(len(lista)): num_dict[lista[i]] = listb[i] print(num_dict) ''' 統計一個字符串中每一個字母累計出現的次數 ''' def print_tjizicxiancishu(stra): num_dict = {} for i in stra: if i not in num_dict.keys(): num_dict[i] = 1 else: num_dict[i] += 1 print(num_dict) ''' 統計一個字符串中每個單詞出現的次數 ''' def print_dancicxiancishu(stra): num_dict = {} num = stra.split() for i in num: num_dict[i] = num.count(i) print(num_dict) ''' 從鍵盤輸入兩個數,並比較其大小,直到輸入e/E退出程序 ''' def print_caidaxiao(): while True: num_one = input("請輸入第一個要比較的數:") num_two= input("請輸入第二個要比較的數:") if num_one in 'eE' or num_two in 'eE': print("結束並退出!!") break elif int(num_one) > int(num_two): print("第一個數大於第二個數") elif int(num_one) < int(num_two): print("第一個數小於第二個數") else: print("兩個數相等!!") ''' 將列表元素交替地作為建和值來創建字典 ''' def print_jiaotizuo_key_values(lista): num_dict = {} for i in range(0,len(lista),2): num_dict[lista[i]] = lista[i+1] print(num_dict) ''' 分別輸出字符串中奇數坐標和偶數坐標的字符 ''' def print_jishu_oushu_zuobiao(stra): num_list = [[],[]] for i in range(len(stra)): if i%2 ==0: num_list[0].append(stra[i]) else: num_list[1].append(stra[i]) print("奇數坐標的字符為:",num_list[1]) print("偶數坐標的字符為:",num_list[0]) ''' 將一個字典的 key和value 互換 ''' def print_jiaohuan_value_key(dicta): num_dict = {} for k,v in dicta.items(): num_dict[v] = k print("原始的字典:",dicta) print("轉換后的字典:",num_dict) ''' 將一個多重嵌套的列表的元素進行互換,存到另一個同等維度的嵌套列表中,例如:[[1,2,3],[4,5,6]]互換后變成[[1,4],[2,5],[3,6]] ''' def print_lista_listb(lista): num_listb = [] for i in range(len(lista[0])): num_num = [] for j in range(len(lista)): num_num.append(lista[j][i]) num_listb.append(num_num) print(num_listb) ''' 有一個3 x 4的矩陣,要求編程求出其中值最大的那個元素的值,以及其所在的行號和列號,矩陣可以通過嵌套列表來模擬 ''' def print_sanchengsi_zuidazhi(): a = [ [1,2,3], [4,30,6], [7,8,9], [10,11,12] ] num_num = a[0][0] num_one = 0 num_two = 0 for i in range(len(a)): for j in range(len(a[i])): if a[i][j] > num_num: num_one = i num_two = j num_num = a[i][j] print("最大的元素為%d,行號為%d,列號為%d!"%(num_num,num_one+1,num_two+1)) ''' 遞歸實現嵌套列表求和 ''' def print_list_qiantao_qiuhe(lista): num_num = 0 for i in lista: if not isinstance(i,list): num_num += i else: num_num += print_list_qiantao_qiuhe(i) return num_num if __name__=="__main__": pass

 

#encoding=utf-8
'''
使錕斤拷raw_input錕斤拷錕斤拷錕斤拷錕斤拷錕斤拷錕�
'''
str = int(raw_input(u'錕斤拷錕斤拷錕斤拷錕斤拷某杉錕斤拷錕�'))
'''
使錕矯匡拷錕斤拷錕斤拷錕斤拷錕�
'''
if str >= 90:
    print 'A'
elif str >=60 and str < 90:
    print 'B'
elif str < 60 and str != 0:
    print 'C'
'''
錕叫憋拷錕絞癸拷茫錕斤拷斜錕絞癸拷錕斤拷錕斤拷錕斤拷漚錕斤拷卸錕斤拷澹匡拷錕皆拷錕街拷錕絞癸拷枚錕斤拷歐錕斤拷錕斤拷錕斤拷錕斤拷錕斤拷錕轎拷斜錕絞癸拷枚錕斤拷錕斤拷錕斤拷錕腳斤拷錕斤拷嵌錕斤拷錕斤拷錕斤拷示錕斤拷錕斤拷
'''
name = ['foster','foe','lily','mickel','live','moon','ruby'
,'cindy','miya']
 
'''
錕斤拷印雙錕斤拷錕腳★拷錕斤拷錕斤拷錕腳★拷錕斤拷錕斤拷錕斤拷錕腳匡拷錕斤拷使錕斤拷\轉錕斤拷錕斤拷錕斤拷錕階拷錕�
'''
print "錕斤拷錕斤拷錕腳o拷\';雙錕斤拷錕腳o拷\";錕斤拷錕斤拷錕斤拷:\'\'\'"
'''
錕斤拷值錕僥礆拷錕姐,錕斤拷錕皆碉拷錕斤拷錕斤拷錕斤拷錕斤拷錕斤拷也錕斤拷錕斤拷使錕斤拷def錕斤拷錕斤拷錕斤拷錕斤拷錕矯詫拷錕斤拷錕截礆拷錕斤拷錕街碉拷錕絛ef錕斤拷錕斤拷錕叫匡拷錕斤拷直錕接革拷錕斤拷錕斤拷錕斤拷值錕斤拷錕叫詫拷錕斤拷錕斤拷值錕僥o拷錕斤拷錕斤拷要錕矯伙拷錕斤拷錕轎o拷直錕斤拷默錕較匡拷始錕斤拷錕斤拷牟錕斤拷錕�
'''
length = 10
breath = 5
area = length*breath
 
def getArea(length,breath):
    return length*breath
 
print getArea(length,breath)
 
 
def getAdd(sun1,sun2):
    return sun1+sun2
print getAdd(2046,9876)
 
def getArea1(length,breath=7):
    return length*breath
print getArea1(2)
 
sun1 =int(raw_input(u'錕斤拷錕斤拷錕斤拷學錕斤拷錕僥鳳拷錕斤拷錕斤拷'))
if sun1 < 0 or sun1 > 100:
    print u'錕斤拷錕斤拷錕斤拷錕斤拷'
elif sun1 >= 60:
    print u'錕斤拷喜錕姐及錕斤拷錕剿o拷錕斤拷錕斤拷錕角o拷',sun1
else:
    print u'錕斤拷錕斤拷錕斤拷思錕斤拷錕姐不錕斤拷錕今,鳳拷錕斤拷錕角o拷',sun1
listA = [12,'1sdd',2,4]
print listA
shopList = ['apple','mongo','carrot','banana']
print 'I have ',len(shopList),' items to buy'
 
 
'''
使錕斤拷type錕斤拷錕斤拷取錕斤拷錕斤拷錕斤拷錕斤拷錕斤拷錕斤拷錕斤拷停錕斤拷斜錕斤拷錕斤拷錕斤拷使錕斤拷sort()錕斤拷錕斤拷錕斤拷sort錕斤拷錕斤拷沒錕叫鳳拷錕斤拷值錕斤拷錕斤拷要錕斤拷錕斤拷錕斤拷錕劫斤拷錕斤拷使錕矯o拷使錕斤拷append()錕斤拷錕斤拷錕斤拷錕斤拷錕叫憋拷錕階鳳拷櫻錕街伙拷錕階鳳拷擁錕斤拷錕皆拷兀錕絞癸拷錕絜xtend()錕斤拷錕斤拷錕斤拷追錕斤拷錕斤拷錕斤拷錕叫憋拷錕斤拷錕斤拷錕斤拷錕斤拷斜錕較詫拷錕斤拷一錕斤拷
'''
print type(shopList)
for items in shopList:
    print items
shopList.append('rice')
print shopList
shopList.sort()
print u'錕斤拷錕斤拷錕僥癸拷錕斤拷錕藉單錕斤拷',shopList
zifulist = [u'unicode錕街鳳拷','錕街鳳拷錕斤拷',12,12.34,]
for i in zifulist:
    print i ,u'錕街鳳拷錕斤拷錕酵o拷',type(i)
listA = [1,2,3]
listB = [4,5,6]
listA.extend(listB)
print u'錕鉸碉拷錕叫憋拷錕�',listA
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM