ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python基本功

2021-07-18 17:34:48  阅读:197  来源: 互联网

标签:python lst len range str print 基本功 def


python基本功
逻辑锻炼

# n个人排成一列,每人手里面有0~n-1个球,如果有两人手中拥有同样数量的球,返回球的数量(如果有多组只需返回任意一组即可),否则返回-1
# 例如:给定lst=[2,4,1,0,5,3,2,3]表示8人手中拥有的球的数量,返回值输出2或者3都是可行的
import random
import string
from time import sleep
def search(lst):
    n = 1
    for i in lst:
        for j in range(n, len(lst)):
            if i == lst[j]:
                print(i)
        n += 1

lst = [2, 4, 1, 0, 5, 3, 3, 3]
search(lst)
def search_char(lst):
    for i in range(len(lst)):
        char = lst[len(lst) - i-1]
        for j in range(0, len(lst) - i - 1):

            if lst[j] == char:
                print("sss:", char)
                break
search_char(lst)

2,斐波那契数列 0 1 1 2 3 5 7 12 19

# 3,斐波那契数列 0 1 1 2 3 5 7 12 19
def fib(n):
    if n == 1:
        print([0])
        return
    if n == 2:
        print([0, 1])
        return

    a, b = 0, 1
    l = []
    while a < n:  # for i in range(n)
        l.append(a)
        a, b = b, a + b
    print(l)
fib(2)

def fibo(n):
    a, b = 0, 1
    aws = []
    for i in range(n):
        aws.append(a)
        a, b = b, a + b
    return aws
print(fibo(2))

# 3 fib
def fibb():
    a,b = 0,1
    while True:
        a,b = a+b,a
        yield a
for f in fibb():
    f_li=[]
    if f > 10:
        break
    print("ssss",f)
    f_li.append(f)

3,找质数


# 找质数   后面的else是精髓
def demo(m, n):
    if m < 1 or m > n or n > 1000000:
        return -1
    t = []
    for i in range(m, n):
        for j in range(2, i):
            if i % j == 0:
                break
        else:
            t.append(i)
    return t
y = demo(3, 10)
print(y)

4,找出一个字符串中第一个不重复的字符串,并返回。如”abcacd”,第一个不重复的字符为”b”。请写一个方法实现

词频法

# 找出一个字符串中第一个不重复的字符串,并返回。如”abcacd”,第一个不重复的字符为”b”。请写一个方法实现
def search_str(str: str) -> str:
    dict_str = {}
    for i in range(len(str)):
        if str[i] in dict_str:
            dict_str[str[i]] += 1
        else:
            dict_str[str[i]] = 1
    for i in range(len(str)):
        if dict_str[str[i]] == 1:
            # return (str[i])
            print(str[i])
            print(i)
            break
search_str("abcacfd")

5,区分奇偶数,并排序,

# 奇偶两边站
# 1,空间换时间:直接两个新list
# 2,双指针,
def demo(l: list) -> list:
    n = len(l)
    a = 0
    b = n - 1
    while a < b:
        if l[a] % 2 == 0 and l[b] % 2 != 0:
            l[a], l[b] = l[b], l[a]
        else:
            if l[a] % 2 != 0:
                a += 1
            if l[b] % 2 == 0:
                b -= 1
    print(l)
    i = 0
    for i in range(n):
        if l[i] % 2 == 0:
            print(i)
            i = i
            break
    for h in range(i):
        for j in range(i - h - 1):
            if l[j] > l[j + 1]:
                l[j], l[j + 1] = l[j + 1], l[j]
    for k in range(n - i):
        for j in range(i, n - 1):
            if l[j] > l[j + 1]:
                l[j], l[j + 1] = l[j + 1], l[j]
de = [3, 4, 4, 6, 5,34,54,674,345,234, 6, 4, 1]
demo(de)
print(de)

标签:python,lst,len,range,str,print,基本功,def
来源: https://blog.csdn.net/weixin_44080239/article/details/118879709

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有