'''
#Leecode答案全解https://www.cnblogs.com/grandyang/p/4606334.html
def moveZeroes(nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""
a = 0
k = 0
while k < len(nums):
if nums[a] == 0:
nums.append(0)
nums.pop(a)
else:
a += 1
k += 1
return nums
if __name__ == '__main__':
nums = [1,0,0,3,12]
print(moveZeroes(nums))
def plusOne(digits):
for i in range(len(digits) - 1,-1,-1):
digits[i]=digits[i]+1
digits[i] = digits[i] % 10
if digits[i] != 0:
return digits
digits.insert(0, 1)
return digits
if __name__ == '__main__':
digits = [1, 9, 5, 2]
print(plusOne(digits))
#最大子序和
def maxSubArray( nums):
sum=0
ret=nums[0]
for i in range (0,len(nums)):
sum=sum+nums[i]
ret=max(ret,sum)
if sum < 0:
sum = 0
return ret
if __name__ == '__main__':
nums = [-2,1,-3,4,-1,2,1,-5,4]
print(maxSubArray(nums))
#数字组合
# !/usr/bin/python
# -*- coding: UTF-8 -*-
count=0
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if (i != k) and (i != j) and (j != k):
print(i, j, k)
count = count + 1
print(count)
#个人税
i=int(input ('profit is: '))
thresholds=[1000000,600000,400000,200000,100000,0]
rates= [0.01,0.015,0.03,0.05,0.075,0.1]
sum=0
for j in range(0,6):
if(i>thresholds[j]):
sum=sum+(i-thresholds[j])*rates[j]
i=thresholds[j]
print(sum)
#3 完全平方
import math
for i in range(-100,10000):
m1=math.sqrt(i+100)
m2=math.sqrt(i+100+168)
if(m1==int(m1)):
if(m2==int(m2)):
print(i)
#n = int(math.sqrt((i + 100)))
for i in range(-100,10000):
m=(i+100)**0.5
n=(i+268)**0.5
if(m==int(m)):
if(n==int(n)):
print(int(i))
#4 这一年的第几天
# -*- coding: UTF-8 -*-
def isLeapYear(y):
return (y % 400 == 0 or (y % 4 == 0 and y % 100 != 0))
DofM = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30]
res = 0
year = int(input('Year:'))
month = int(input('Month:'))
day = int(input('day:'))
if isLeapYear(year):
DofM[2] += 1
for i in range(month):
res += DofM[i]
print(res + day)
#排序 sort()函数https://blog.csdn.net/guoyang768/article/details/84428171
lst=[]
for i in range(3):
m=input("请输入第%i个整数"%(i+1))
if m.isdigit():#isdigit检测字符串是否只由数字组成,如果字符串只包含数字则返回 True 否则返回 False
lst.append(m)
else:
print('输入数据不是数字')
lst.sort()
print(lst)
#以下是对数列lst的输出
for i in range(len(lst)):
print(lst[i])
#定义一个空数组
numbers = []
#循环遍历,下面的4是控制循环次数
for i in range(4):
if i > 0:
x = int(input(f"请输入第{i}个整数:"))
#把用户输入的数传递到定义的numbers数组中
numbers.append(x)
#输出未排序之前的数字
print(f"未排序之前是:{numbers}")
#让数字从小到大排序
print("由小到大排序完后是:",sorted(numbers))
#让数字从大到小排序
numbers.sort(reverse=True)
print(f"由大到小排序完后是:{numbers}")
#输出最大值
print(f"最大数是:{max(numbers)}")
#输出最小值
print(f"最小数是:{min(numbers)}")
def maxSubArray(nums):
"""
:type nums: List[int]
:rtype: int
"""
sum = 0
ret=nums[0]
for i in range(len(nums)):
sum = sum + nums[i]
ret=max(ret,sum)
if sum < 0:
sum = 0
return ret
if __name__ == '__main__':
nums = [-2,1,-3,4,-1,2,1,-5,4]
print(maxSubArray(nums))
#判断是否存在重复元素
class Solution(object):
def containsDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
d = {}
for num in nums:
if num not in d:
d[num] = 0
else:
return True
return False
#return False if len(nums) == len(set(nums)) else True
#set(nums),集合会直接删除重复元素然后判断集合是否和列表等长,等长返回False 不等长说明有重复数,返回True
#零钱兑换
def coinChange( coins, amount):
"""
:type coins: List[int]
:type amount: int
:rtype: int
"""
dp = [float("inf")] * (amount + 1)#创建一个列表
dp[0] = 0
for i in range(1, amount + 1):
for coin in coins:
if (i >= coin):
dp[i] = min(dp[i], dp[i - coin] + 1)
return dp[-1] if (dp[-1] != float("inf")) else -1
if __name__ == '__main__':
coins = [1,2,5]
print(coinChange(coins,11))
#斐波那契 生兔子 0 1 1 2 3 5 8
#!/usr/bin/env Python
#coding=utf-8
a,b = 0,1
lst = [0,1]
for i in range(2,10):
a,b = b,a+b #关键在这句先计bai算等值 右边 那么 b=1 a+b=1 再赋值给a和b,那么 a=1, b=1
lst.append(b)
print(a)
print(lst)
#数据列表复制
a = [1, 2, 3]
b = []
for i in range(3):
b.append(a[i])
print(b)
# 将b的值赋予a;
#a[0:3]表示使用切片从0位置开始到第3位置结束;
# a[:3]表示使用切片从开始位置开始到第3位置结束;
# a[0:]表示使用切片从0位置开始到结束;
# a[:]表示从开始到结束,这是最简化写法;
a = [1, 2, 3]
b = a[0:3]
c = a[:3]
d = a[0:]
e = a[:]
print(b)
print(c)
print(d)
print(e)
#str(I) 是把bai整型数i按照字符du串对待。+就是把字符串连接起来。"*" 就是一个星号了。str(j)就是把整型数j按照字符串对待。"="就是一个等号了。i% * j% 就是整数i乘以整数j的积了5*6= 30
#99乘法表
for i in range(1,10):
for j in range(1,i+1):
#print('%d*%d=%2ld '%(j,i,i*j),end='')
print (str(i)+"*"+str(j)+"="+str(i*j),end=" ")
print()
#暂停一秒输出
#-*- coding:utf-8 -*-
import time
L = [1,2,3]
for i in range(len(L)):
print (L[i])
time.sleep(1)
print (time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) ) #格式化输出当前时间
import time
for i in range(4):
print(str(int(time.time()))[-2:])
time.sleep(1)
#素数
from math import sqrt
p=range(101,201)
aList=list(p)
for i in range(101,201):
for j in range(2,int(sqrt(i)+1)):
if i % j==0:
aList.remove(i)
break
Python基础练习 待更~
最新推荐文章于 2023-11-18 16:32:27 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)