python學習第一模塊練習


#!/usr/bin/python
# -*- coding:utf-8 -*-

### 第一套題
# # 1. 分別解釋"=","==","+="的含義(口述)
# =為賦值語句,把一個變量值賦予另一個值
# == 為條件判斷,判斷兩個值是否相等
# += 為賦值 意思為 a+=1 就是a=a+1

# 2.
# 兩個變量值的關系?(口述)
# - n1 = 123456
# - n2 = n1
# n1賦予123456的值 然后將n1地址存儲123456的內存地址給與n2 意思就是n1 n2指向123456這個地址。

# 3. 請寫出 “路飛學城” 分別用 utf-8 和 gbk 編碼所占的位數(口述)
# utf-8 占12字節 GBK占8字節 12字節相當於96位 8字節64位

# 4. 簡述Python中的幾種數據類型(口述)
# 數據類型分為:基本類型、數據集。
# 基本類型包括:數字類型(整形、長整型、浮點型、復數)、字符串類型、布爾類型。
# 數據集類型包括:列表、元祖、字典、集合。
#
# 5. 數據類型的可變與不可變分別有哪些?(口述)
# 可變:字符串、列表、可變集合、字典value
# 不可變:數字、字符串、布爾、元祖、字典key、不可變集合
#
# 6.
# 元祖,列表,字典有沒有長度的限制?(口述)
# 沒有,根據內存大小定義。
#
# 7.
# 列表['alex', 'egon', 'yuan', 'wusir', '666'](編程)
# info = ['alex', 'egon', 'yuan', 'wusir', '666']
# -1.把666替換成999
# info[-1] = '999'
# print(info)

# -2.獲取"yuan"索引
# print(info.index('yuan'))

# -3.假設不知道前面有幾個元素,分片得到最后的三個元素
# print(info[-3:])

# 8. 將字符串“www.luffycity.com”給拆分成列表:li=['www','luffycity','com'] (編程)
# li='www.luffycity.com'
# print(li.split('.'))

# # 9. 對字典進行增刪改查(編程)
# # - {"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"}
# dic={"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"}
# #增加
# dic['打掃']='阿姨'
# print(dic)
# #刪除
# del dic['打掃']
# print(dic)
# # 改
# dic['UI']='ui'
# print(dic)
# #查
# print(dic.get('UI'))

# 10. 計算1+2+3...+98+99+100 (編程題)
# a = range(100)
# count = 0
# for i in a:
# count = count+i
# print(count)

# 11. 制作趣味模板程序(編程題)
# 需求:等待用戶輸入名字、地點、愛好,根據用戶的名字和愛好進行任意現實
# 如:敬愛可愛的xxx,最喜歡在xxx地方干xxx

# name = input('輸入名字:')
# place = input('輸入地點:')
# likes = input('輸入愛好:')
# print('敬愛可愛的%s,最喜歡在%s地方干%s'%(name,place,likes))

# 12. 寫一個三次認證(編程)
# 1. 實現用戶輸入用戶名和密碼,當用戶名為 seven 或 alex 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重復輸入三次
# name = 'senven'
# name1 = 'alex'
# password = '123'
# count=0
# while count < 3:
# name_ = input("請輸入用戶名:")
# password_= input("請輸入密碼:")
# if (name == name_ or name1 == name_) and password_ == password:
# print('登錄成功')
# break
# else:
# count += 1
# print('登錄失敗%s次,超過3次則退出'%(count))


### 第二套題
# # 1. 解釋'and','or','not'(口述)
# 和C語音的與或非類似,and,or,not都為邏輯運算符
# and表示兩者都為TRUE,則為TRUE
# or表示兩者有一個判斷為布爾TRUE 則結果為TRUE 反之則False
# not 表示取反 如x為True,not x 則為False

# 2. 元組和列表的區別(口述)
# 元組又叫只讀列表,不可改變,且無序。
# 列表有序,並且可以修改。

# 3. 列舉一堆布爾值為False的情況(口述)
# [],{},None,False,'',數字0,-0
# print(bool([]))

# 4. python2和python3對於long(長整形)的區別。
# python2中有整形int和long,int 32位系統最多只有32位,超出32位則為long。64位系統為64位。
# python3中全部為int。
# long在python中沒有指定位寬。

# 5. 元祖和列表的區別(口述)
# 元組又叫只讀列表,不可改變,且無序。
# 列表有序,並且可以修改。

# 6. 變量命名規范 ?(口述)
# 首字母不能是數字,並且變量名只能含有英文,數字,和下划線_

# # 7. 闡述一下unicode和utf-8的區別(或者unicode在python3的作用)(口述)
# unicode又叫萬國碼,涵蓋全世界的編碼,所有字符和符號最少由16位(2個字節)表示,和別的編碼有對應映射關系。
# utf-8對unicode進行了優化,uft-8對於英文只占用1個字節,歐洲字符2個字節,東亞字符3個字節,特殊字符4個字節。
# 在python3中默認在內存存儲代碼的形式就是unicode,為了方便不同國家的人查看代碼。

# 8.內存空間的考核。(口述)
#
# - 問修改前后info的id是否改變
# - 問修改前后info['alex']['hobbies']
# 的id是否改變
#
# info = {
# 'egon': {'pwd': '123', 'hobbies': ['play', 'music', 'read']},
# 'alex': {'pwd': '1234', 'hobbies': ['music', 'read']},
# 'wupeiqi': {'pwd': '135', 'hobbies': ['read', ]},
# }
# info['alex']['hobbies'].append('play')

# 內存地址不會改變。

# 9. 切割字符串"luffycity"為"luffy","city"(編程)

# info='luffycity'
# print(info[0:5])
# print(info[5:])

# 10. 猜年齡游戲(編程題)

# age = 26
# while 1:
# user_guess = input("猜猜年齡數:")
# if user_guess.isdigit() == True:
# if age == int(user_guess):
# print("恭喜你!猜對了")
# break
# elif int(user_guess) > age:
# print("你猜大啦,再試試吧")
# else:
# print("你猜小啦,再試試吧")

# 11. 求1~100間所有偶數的和(亦可奇數和,使用while循環寫)(編程題)。

# count1 = count = 0
# while count < 100:
# count+= 1
# if count%2 == 0:
# count1 = count1 + count
# print(count1)

# 12. 從鍵盤接收一百分制成績(0~100),要求輸出其對應的成績等級A~E。其中,90分以上為'A',80~89分為'B',70~79分為'C',60~69分為'D',60分以下為'E'。(編程題)

# score = int(input('輸入成績:'))
# if score >= 90:
# print("成績為A")
# elif score >= 80:
# print("成績為B")
# elif score >= 70:
# print("成績為C")
# elif score >= 60:
# print("成績為D")
# else:
# print("成績為E")

### 第三套題

# # 1. "is"和“==”的區別(口述)

# is是對比地址,==是對比值.
# is是判斷變量是否來自同一對象同一地址。
# ==是判斷值是否相等。

# 2. 聲明變量注意事項有哪些?(口述)

# 注意變量定義的規則:
# 1.變量名只能是 字母、數字或下划線的任意組合。
# 2.變量名的第一個字符不能是數字。
# 3.關鍵字不能聲明為變量名。
# 變量名不要過長,最好不要使用中文和拼音,還有不能亂起變量名,比如名不搭意。


# 3. 深淺copy-引用和copy(),deepcopy()的區別(口述)

# 1.引用賦值的時候,指向同一個列表地址,如果a列表重新賦予別的列表,b還是指向之前的地址,b列表不改變
# 如果a列表里的值改變,那么b也會跟着改變。
# 2.當使用copy()的時候,相當於整個列表包括里面的東西一起完整拷貝給你,不是指向同一個地址,
# a里面的值改變,b列表不跟着改變。但是如果a列表是嵌套列表,嵌套列表里的值發生變化,拷貝的列表b里的嵌套
# 列表也會跟着改變,因為列表里的列表是指向同一個地址,相當於1.的情況
# 3.使用deepcopy()的話,列表里的數地址也會不一樣,所以改變列表a里的嵌套列表的數,b也不會跟着改變。

# 4. 各個數據類型分別是有序的?還是無序的?(口述)

# 有序:列表、元組、字符串
# 無序:字典、集合

# 5. 輸入一年份,判斷該年份是否是閏年並輸出結果。(該程序可以重復使用 使用while True)(編程題)
# 注:凡符合下面兩個條件之一的年份是閏年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

# while True:
# year = input("輸入年份判斷是否閏年:(輸入q退出)")
# if year.isdigit() == True:
# if (int(year)%4 == 0 and int(year)%100 != 0) or (int(year)%400 == 0):
# print("您輸入的是閏年:%s"%(year))
# else:
# print("您輸入的不是閏年")
# elif year == 'q':
# break

# 6. 有如下字符串:n = "路飛學城"(編程題)
#
# - 將字符串轉換成utf-8的字符編碼,再將轉換的字節重新轉換為utf-8的字符編碼
# - 將字符串轉換成gbk的字符編碼,再將轉換的字節重新轉換為utf-8的字符編碼

# n = "路飛學城"
# n1 = n.encode('utf-8')
# print(n1)
# n = n1.decode('utf-8')
# print(n)
# n2 = n.encode('GBK')
# print(n2)
# n = n2.decode('GBK').encode('utf-8')
# print(n)

# # 7. 將列表['alex', 'steven', 'egon'] 中的每一個元素使用 ‘\_’ 連接為一個字符串(編程)
# info=['alex', 'steven', 'egon']
# s1='\_'
# print(s1.join(info))

# # 8.自定義兩個,並求交集,合集,差集。(編程)
# a = {1, 2, 3, 4, 5}
# b = {2, 4, 6, 8, 10}
# print(a & b)
# print(a | b)
# print(a - b)

# 9. 求100以內不能被3整除的所有數,並把這些數字放在列表sum3=[]里,並求出這些數字的總和和平均數。(計算的時候告訴學員,sum是一個關鍵詞,不能當作變量)(編程)
# info = range(100)
# sum3 = []
# for i in info:
# if i % 3 == 0:
# sum3.append(i)
# count = 0
# for i in sum3:
# count = count + i
# print(sum3)
# print("總和:%s"%(count))

# 10. 根據字典內容打印出下面的形式(編程)
# 可以不打印工整對齊的效果,主要是讓學員獲取key和value。
# {"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"}
# 效果如下:
# 1. 刪除了UI
# 2. 修改了Operate
#
# ```
# Development --- 開發小哥
# OP --- 運維小哥
# Operate --- 小仙女
# ```

# info = {"Development":"開發小哥","OP":"運維小哥","Operate":"運營小仙女","UI":"UI小仙女"}
# del info['UI']
# info['Operate']='小仙女'
# for k in info:
# print(k,info[k])

# 11. 假設一年期定期利率為3.25%,計算一下需要過多少年,一萬元的一年定期存款連本帶息能翻番?(編程題)
# money = 10000
# interest = money
# count = 0
# while True:
# count += 1
# interest = interest * (1 + 3.25 / 100)
# if interest // money == 2:
# print(count)
# break

# 12.
# 對列表進行增刪改查(查可以是索引,值是否存在列表當中)。(編程)
#
# - ['alex', 'egon', 'wusir', 'wen', 'jing']

# info = ['alex', 'egon', 'wusir', 'wen', 'jing']
# #增加
# info.append('hessen')
# print(info)
# #刪除
# info.remove('wen')
# print(info)
# del info[-1]
# print(info)
# #修改
# info[1]='hessen'
# print(info)
# #查找
# print(info.index('hessen'))

### 剩余題
# 1. 猜數游戲。預設一個0~9之間的整數,讓用戶猜一猜並輸入所猜的數,如果大於預設的數,顯示“太大”;小於預設的數,顯示“太小”,如此循環,直至猜中該數,顯示“恭喜!你猜中了!(編程題)
# number = 8
# while 1:
# user_guess = input("猜猜年齡數:")
# if user_guess.isdigit() == True:
# if number == int(user_guess):
# print("恭喜!你猜中了!")
# break
# elif int(user_guess) > number:
# print("太大")
# else:
# print("太小")

# 2. 編寫一個python程序,輸入兩個數,比較它們的大小並輸出其中較大者。(編程題)
# print("輸入兩個數比較大小")
# info = []
# while len(info) < 2:
# number = input('輸入數:')
# if number.isdigit() == False:
# print("輸入錯誤,請輸入數字")
# continue
# else:
# info.append(number)
# maxnumber=int(info[0])
# for i in info:
# if int(i) > maxnumber:
# maxnumber = int(i)
# print("%s比較大"%(maxnumber))
#

# 3. 有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少?(編程題)
# 程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。
# 程序源代碼:
#
# n = [1,2,3,4]
# n1 = []
# i = j = k = 0
# count = 0
# while i < 4:
# n2 = n[i]*100
# i+=1
# while j<4:
# n3 = n2+n[j]*10
# j+=1
# while k<4:
# n1.append(n3+n[k])
# k+=1
# else:
# k=0
# else:
# j=0
# n2=n1.copy()
# for index,i in enumerate(n1):
# a = n1[index]//100
# a1 = n1[index]%100//10
# a3 = n1[index]%10
# if a == a1 or a == a3 or a1 == a3:
# n2.remove(i)
# print(len(n2),n2)

# 4.
# # 某個公司采用公用電話傳遞數據,數據是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5, 然后用和除以10的余數代替該數字,再將第一位和第四位交換,第二位和第三位交換。(編程題)
# data = input("輸入4位數:")
# data = list(''.join(data))
# for index,i in enumerate(data):
# data[index] = (int(i) + 5) % 10
# print(data)
# data.reverse()
# print(data)

#
# 5. 求100以內的素數和。(編程題)
# n1 = list(range(2,100))
# n2 =[]
# i = 0
# count = 0
# count1 = 0
# while count < 98:
# if n1[i] % n1[count] == 0:
# count1+= 1
# if count == 97 and count1 == 1:
# n2.append(n1[i])
# count+= 1
# if count == 98:
# i+= 1
# count1 =count = 0
# if i == 98:
# break
# print(sum(n2))



# 6. 二進制,十進制,十六進制互相轉換(計算題,讓學員使用計算器,別用編程的內置方法)
# 十進制轉二進制:bin()
# 十進制轉十六進制:hex()
# 十進制轉八進制:oct()
# 二進制轉10進制:如1010: 相當於8+2=10
# 十六進制轉二進制:如0x9a:相當於10011010 再轉10進制就是 對應
# 1 1 1 1 1 1 1 1
# 128 64 32 16 8 4 2 1 10011010=128+16+8+2=154

# 7. python2和python3的默認字符編碼(口述)
# python2默認字符編碼是ASCII
# python3默認編碼是unicode

# 8. 浮點數轉換整形(口述)
# 把小數點后的數去掉,取整數。

# 9. 計算"21days"字符串的長度。(口述/編程)
# print(len('21days'))

# 10. 元祖,列表,字典有沒有長度的限制?(口述)
# 沒有

# 11. 集合的特性(口述)
# 確定性:元素必須可以hash。互異性:元素不可相同。無序性。

# 12. 企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;
# 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成7.5%;
# 20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;
# 60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,
# 從鍵盤輸入當月利潤I,求應發放獎金總數?(編程)
# while True:
# money = input('利潤:')
# if money.isdigit() == True:
# if int(money) <= 100000:
# print("獎金為:%s"%(int(money)*10/100))
# elif int(money) <= 200000:
# print("獎金為:%s"%(((int(money)-100000)*7.5/100)+100000*10/100))
# elif int(money) <= 400000:
# print("獎金為:%s" % (((int(money) - 200000) * 5 / 100)))
# elif int(money) <= 600000:
# print("獎金為:%s" % (((int(money) - 400000) * 3/ 100)))
# elif int(money) <= 1000000:
# print("獎金為:%s" % (((int(money) - 600000) * 1.5/ 100)))
# else :
# print("獎金為:%s" % (((int(money) - 600000) * 1/ 100)))
# break
# else:
# money = input('輸入錯誤,請重新輸入:')


免責聲明!

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



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