周六
1. 求一個(gè)十進(jìn)制的數(shù)值的二進(jìn)制的0、1的個(gè)數(shù)
def er(x):
a = bin(x)
b = str(a).count("1")
c = str(a).count("0") - 1
print(f"{a},count 1:,count 0:{c}")
x = int(input("enter a number:"))
er(x)
2. 實(shí)現(xiàn)一個(gè)用戶管理系統(tǒng)(要求使用容器保存數(shù)據(jù))
??? ??? [{name: xxx, pass: xxx, ……},{},{}]
users = []
while True:
print("\t\t歡迎登錄用戶管理系統(tǒng)")
print("\t\t 1、用戶注冊")
print("\t\t 2、用戶登錄")
print("\t\t 3、退出系統(tǒng)")
choice = input("請輸入您的選擇:")
if choice == "1":
while True:
username = input("請輸入用戶名:")
password = input("請輸入密碼:")
password_again = input("請?jiān)俅未_認(rèn)密碼:")
if username == None or len(username) == 0:
print("對不起,用戶為空")
continue
flag = False
for u in users:
if u.get("username") == username:
print("對不起,該用戶已經(jīng)存在,請重新注冊")
flag = True
break
if flag:
continue
if password != password_again:
print("兩次密碼不一致")
continue
user = {"username": username, "password": password}
users.append(user)
print("用戶注冊成功,請登錄")
print("\n")
break
elif choice == "2":
print("\n")
username = input("請輸入用戶名:")
password = input("請輸入密碼:")
for user in users:
if user["username"] == username and user.get("password") == password:
print(f"尊敬的用戶{username},歡迎回來")
else:
print("對不起,登錄失敗,請重新登錄")
else:
sys.exit()
?3. 求1~100之間不能被3整除的數(shù)之和
a = 0
for x in range(1,101):
if x % 3 == 0:
continue
else:
a = x + a
print(f"百位以內(nèi)不可被三整除的數(shù)和為:{a}")
?4. 給定一個(gè)正整數(shù)N,找出1到N(含)之間所有質(zhì)數(shù)的總和
def sum(x):
if x == 1:
return False
for i in range(2,x//2 + 1):
if x % i == 0:
return False
return True
N = int(input('請輸入一個(gè)正整數(shù)N:'))
sum_N = 0
for x in range(1,N+1):
if sum(x):
sum_N += x
print(f'1到N(含)之間所有質(zhì)數(shù)的總和為:{sum_N}')
5. 計(jì)算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)
def PI():
a = 0
b = 0
for i in range(1,99999999,4):
a += 4 * (1 / i)
for i in range(3,99999999,4):
b -= 4 * (1 / i)
print(a + b)
PI()
?6. 給定一個(gè)10個(gè)元素的列表,請完成排序(注意,不要使用系統(tǒng)api)
l = eval(input("請輸入一個(gè)列表:"))
ls=list(l)
ls.sort()
s=set(ls)
print(s)
?7. 求? a+aa+aaa+.......+aaaaaaaaa=?其中a為1至9之中的一個(gè)數(shù),項(xiàng)數(shù)也要可以指定。
def sum(a,n):
sum_a = 0
for i in range(1,n+1):
num = int(f'{a}'*i)
sum_a += num
return sum_a
a = int(input('請輸入一個(gè)在區(qū)間[1,9]的正整數(shù):'))
n = int(input('請輸入指定的項(xiàng)數(shù):'))
print(f'所求多項(xiàng)式的和為:{sum(a,n)}')
8. 合并兩個(gè)有序數(shù)組,合并后還是有序列表?
def selection_sort(ls=[]):
for i in range(len(ls)):
index_min = i
for j in range(i+1,len(ls)):
if ls[index_min] > ls[j]:
index_min = j
ls[index_min],ls[i] = ls[i],ls[index_min]
return ls
l1 = eval(input("請輸入一個(gè)列表:"))
l2 = eval(input("請輸入一個(gè)列表:"))
l1.extend(l2)
print(f'合并后的有序列表為:{selection_sort(l1)}')
?9. 給定一個(gè)非負(fù)整數(shù)數(shù)組A,將該數(shù)組中的所有偶數(shù)都放在奇數(shù)元素之前
def even_before_odd(ls = []):
for i in range(len(ls)):
if ls[i] % 2 != 0:
for j in range(i+1,len(ls)):
if ls[j] % 2 == 0:
ls[i],ls[j] = ls[j],ls[i]
break
return ls
ls = eval(input("請輸入一個(gè)列表:"))
print(f'將偶數(shù)置于奇數(shù)前,列表變?yōu)椋簕even_before_odd(ls)}')
?周日
1. 給定一個(gè)包含n+1個(gè)整數(shù)的數(shù)組nums,其數(shù)字在1到n之間(包含1和n),可知至少存在一個(gè)重復(fù)的整數(shù),假設(shè)只有一個(gè)重復(fù)的整數(shù),請找出這個(gè)重復(fù)的數(shù)
nums = [1,3,4,2,2]
repeatDict = {}
for num in nums:
if num not in repeatDict:
repeatDict[num] = 1
else:
print(num)
nums.sort()
pre = nums[0]
n = len(nums)
for index in range(1, n):
if pre == nums[index]:
print (pre)
pre = nums[index]
nums.sort()
for i in range(len(nums)-1):
if nums[i] == nums[i+1]:
print(nums[i])
2. 找出10000以內(nèi)能被5或6整除,但不能被兩者同時(shí)整除的數(shù)(函數(shù))?
def math_5_6(x):
count=[]
for i in range(1,x+1):
if (i % 5 == 0 or i % 6 ==0 ):
if i % 5 == 0 and i % 6 ==0:
continue
else:
count.append(i)
print(count)
math_5_6(10000)
文章來源:http://www.zghlxwxcb.cn/news/detail-846047.html
3. 寫一個(gè)方法,計(jì)算列表所有偶數(shù)下標(biāo)元素的和(注意返回值)?
def list_sum(ls):
sum = 0
i = 0
while i < len(ls):
sum += ls[i]
i += 2
return sum
ls = [1,2,3,4,5,6,7,8,9]
print(f"列表是:{ls},偶數(shù)下標(biāo)元素和是:{list_sum(ls)}")
?4. 【選做】某個(gè)人進(jìn)入如下一個(gè)棋盤中,要求從左上角開始走,?最后從右下角出來(要求只能前進(jìn),不能后退),問題:共有多少種走法?
5. 【選做】漢諾塔
def rabbit(month):
if month <= 2:
return 2
else:
return rabbit(month - 1) + rabbit(month - 2)
if __name__ == "__main__":
month = int(input("請輸入month:"))
for i in range(0, month):
print(rabbit(i))
文章來源地址http://www.zghlxwxcb.cn/news/detail-846047.html
到了這里,關(guān)于Python第三次作業(yè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!