1008day1作业:字符串(方法、格式化、strip左右字符)、列表(方法、max、min、去重、统计个数、两列表比较取出大值zip合成新列表)、斐波那契、水仙花数、冒泡排序列表、计算器、九九乘法

本文详细介绍了Python的基础安装流程及多环境配置方法,讲解了字符串、列表等基本数据类型的常用操作,包括各种方法的使用、格式化技巧以及列表操作。并通过多个实际案例,如水仙花数判断、斐波那契数列生成、九九乘法表输出等,加深读者对Python编程的理解。
摘要由CSDN通过智能技术生成

1.Python安装流程编写,如何多环境不冲突

第一步 打开安装包后首先勾选(AddPython 3.10.X to Python),接着点击Customize installation。
第二步 然后会进入到Optional Features界面,全部勾选,接着下一步(next)。
第三步接着勾选前5个选项,并且最好将下方的路径改至除c盘外的盘里。然后点击 Install 。
第四步接下来等待安装 。
第五步接下来等待安装 。
第六步至此,python的安装结束。
第七步检测是否安装成功:windows+R 会弹出界面,输入 cmd 确定。
第八步在弹出的运行框里输入: python -V (-前面有空格,V必须大写),接着空格,若出现Python版本名称则表示安装成功。
@.在电脑高级系统设置里面配置环境变量,把python.exe和Scripts这两个添加到Path当中,
每次想用哪个版本的Python的时候,就把这个版本的这两个文件路径在Path列表中提到最前边,因为电脑是按照顺序读取的。
@.可以把不同的Python改名字,这样就不用改环境变量了,切换的话cmd里面运行的时候想用哪个就输入哪个。

2.字符串所有方法默写

str.upper()转换字符串中所有字母为大写,str.lower()转换为小写。
str.strip()删除字符串开头和末尾的空格,str.lstrip()删除左边,str.rstrip()删除右边,# print(str1.lstrip(‘+’).rstrip(‘-’))删除左边+和右边-
str.swapcase() 对字符串进行大小字母转换;str.title()所有单词首字母转换为大写,>>> name = ‘li qin’ >>> name.title() ‘Li Qin’
str.find()找位置,检测字符串中是否包含子字符串str,返回下标;
str.index(‘6’)如果想要知道某个字符串是否包含在列表中,可以直接使用index方法判断。
str1 = ‘12336’
b = str1.index(‘6’)
print(b)
如果包含了字符串中,返回该字符串第一次出现的位置;如果不包含,就会出错。
str.replace(str1,str2) 替换,把字符串中的str1替换成str2
print(‘hes’ in ‘hello’)判断是否在其中
字符串取值str.index(‘6’)) print(str3[6:11][::-1])
遍历字符串
b = ‘12336’
for i in b:
print(i)

使用join函数连接字符串
#l1 = [‘hello’,‘world’]
#print(‘王先生’.join(l1))

判断以什么开头
data = “王大头王小”
print(data.startswith(‘大’))
输出结果是False

统计长度
#len()

查看当前字符串在Ascii码表里的位置
#print(ord(‘a’))
结果输出的是97
#print(chr(97))
结果输出的是a

#14字符串转义
#print(‘hello\nwor’ld’)
#print(r’hello\nworld’)

处理字符串当中的引号两种方法
(1.)使用不同的引号包围字符串
(2.)对字符串内容的引号进行转义,使用\即可
s5 = “i’m a good boy”
s6 = ‘i’m a good boy’
print(s5)
print(s6)

3.字符串格式化三种方法练会

字符串格式化(想让输入到里面的值可以变化,比如可以随便输入一个人的名字,查询成绩什么的,就可以随便输入)

#(1)format格式化 使用%进行占位,%连接传参
#username = input(‘请输入你的名字’)
#score = float(input(‘请输入你的成绩’))
#print(‘你好,{0},你的成绩是{1:.2f}’.format(username,float(score)))

name = ‘李崇昂’
print(“我的名字是:{}”.format(name))
print(‘我的年龄是:{age}’.format(age = 18))
我的名字是:李崇昂
我的年龄是:18

#(2)%号格式化,使用%进行占位,%连接传参

#%s 格式化字符串 %d 格式化整数 %f 格式化浮点数,可以指定小数点后的精度
#print(‘你好,%s,你的成绩是%.2f’%(username,float(score)))

例子
name = ‘二狗’
age = 18
print(‘我的名字是%s,我今年%d岁了’%(name,age))

我的名字是二狗,我今年18岁了

#(3)f-string 格式化,直接在花括号钟传值
#print(f’你好,{username},你的成绩是{score:.2f}')

name = ‘张三’
print(f’你的名字是{name}')
你的名字是张三

也可以使用字典类型来格式化
d = {‘age’:18,‘name’:18}
print(f’年龄{d[“age”]}:名字{d[“name”]}')

年龄18:名字18

4.列表所有方法会默写

创建列表[]或者list() 访问列表listname[]或者listname[start🔚step] 添加元素+ append() extend()里面放列表, insert()
删除元素pop() remove() clear() del()
修改元素:修改单个元素,直接对元素赋值,修改一组元素,通过切片语法给一组元素赋值
查找元素:index()查找元素在列表中出现的位置,count()统计某个元素出现的次数
5.实现斐波那契数列的程序编写
6.实现水仙花程序的编写(2种方法)
7.编写程序求一个列表里面的最大值和最小值
8.用自己的代码实现strip的功能
9.编写程序对列表元素中的去重

5斐波那契数列

lists = [0,1,1,2,3,5,8]
x1 = 0
y1 = 1
for i in range(40):

    #实现原理
    #x = y1
    #y = x1 + y1
    #print(y)
    #x1 = x
    #y1 = y

    x1,y1 = y1,x1+y1
    print(y1)

6.水仙花束

第一种
for x in range(100,1000):
    s = str(x)    #将数字转化为字符串
    bai = int(s[0])
    shi = int(s[1])
    ge = int(s[2])
    if x == bai**3 + shi**3 + ge**3:
        print(x)

for x in range(100,1000):
    s = str(x)    #将数字转化为字符串
    bai = int(s[0])
    shi = int(s[1])
    ge = int(s[2])
    if x == eval(('{}**3 + {}**3 + {}**3').format(bai,shi,ge)):
        print(x)


第二种
通过while循环列出1000以内所有三位数,然后通过取整数算出百位,减去百位,然后除以10化整减去个位算出十位,
取余数算出个位,然后进行**3来验证是否水仙花数
i = 100
while i < 1000:
     num1 = i // 100    #百位
     num2 = int((i-num1*100)/10)     #十位
     num3 = i % 10     #个位
     if num3 ** 3 +num2 ** 3 +num1 ** 3 == i:
         print(i)
     i += 1
第三种
for i in range(100,1000):
     a = i // 100  # 百位
     b = (i - a * 100) // 10     #十位
     c = (i - a * 100 - b * 10)      #个位
     if i == (a * a * a + b * b * b + c * c * c):
          print('水仙花数:',i)

7.编写程序求一个列表里的最大值和最小值

#第一种
#假设列表中第一元素设为最大值,第一个元素再设为最小值。进行比较找出最大、最小值 。
nums = [18, 39, 11, 34, 51, 100, 69, 71, 92, 88, 5, 75]
max = nums[0] # 最大值是第一个元素
min = nums[0] # 最小值是第一个元素
for num in nums:
#将认为的最大值与列表中的剩余元素进行比较,这里认为最大值是第一个元素,将第一个元素与第二、三、四...逐个进行比较,
# 如果在比较的过程中遇到了比第一个元素还大的值 ,则把该元素赋值给max
    if num>max:
       max=num
#将认为的最小值与列表中的剩余元素进行比较,这里认为最小值是第一个元素,将第一个元素与第二、三、四...逐个进行比较,
# 如果在比较的过程中遇到了比第一个元素还小的值 ,则把该元素赋值给min
    if min>num:
       min=num
print("-------------第一种方式-------------")
print("最大值:", max)
print("最小值:", min)

#第二种
#用下标的方式来找出最大、最小值 的下标。
nums = [18, 39, 11, 34, 51, 100, 69, 71, 92, 88, 5, 75]
maxIndex=0 #最大值的下标为0
minIndex=0 #最小值的下标为0
#i 代表列表中的元素
for i in range(0,len(nums)):
#将认为的最大值下标nums[0]与列表中的剩余元素下标进行比较,
# 这里认为最大值是第一个元素nums[0],将nums[0]与nums[1],nums[2],nums[3]...
# 逐个进行比较,如果在比较的过程中遇到了比nums[0]还大的值 ,则把该元素的下标赋值给maxIndex.
    if nums[i]>nums[maxIndex]:
            maxIndex=i
#将认为的最小值下标nums[0]与列表中的剩余元素下标进行比较,
# 这里认为最小值是第一个元素nums[0],将nums[0]与nums[1],nums[2],nums[3]...
# 逐个进行比较,如果在比较的过程中遇到了比nums[0]还小的值 ,则把该元素的下标赋值给minIndex.
    if nums[minIndex]>nums[i]:
            minIndex=i

print("-------------第二种方式-------------")
print("最大值:", nums[maxIndex])
print("最小值:", nums[minIndex])

8.用自己的代码实现strip的功能

str1 = '++123--'
str3 = '  [3,4,5]  '
print(str3)
print(str3.strip())
print(str3.lstrip())
print(str3.rstrip())
print(str1.lstrip('+').rstrip('-'))

9.编写程序对列表元素== 去重 ==

list3 = [1,1,1,4,4,5,5,7,7,7,7,7,9,9]
list4=[]#创建空的列表
for i in list3:#使用for in遍历出列表
    if not i in list4:#将遍历好的数字存储到控的列表中,因为使用了if not ,只有为空的的字符才会存里面,如果llist4里面已经有了,则不会存进去,这就起到了去除重复的效果!!
        list4.append(i)#把i存入新的列表中
print(list4)

10.统计列表中每个元素出现的个数

第一种
list3 = [1,1,1,4,4,5,5,7,7,7,7,7,9,9]
print(list3)
for i in list3:
    c1 = list3.count(i)
    print(i,'出现的次数:',c1)

第二种
Demo_list = [1, 2, 3, 3, 3, 5, 6, 2, 2, 0, 4, 5, 2, 7, 8, 4, 5, 1, 3, 9, 8, 7]
#根据情况判断,输出应为字典较为合适
Demo_dict = {}     #定义一个空的字典,在后面的运算中逐步添加数据
for key in Demo_list:    #遍历整个列表
    Demo_dict[key] = Demo_dict.get(key, 0) + 1

print(Demo_dict)

第三种
Demo_list = [1, 2, 3, 3, 3, 5, 6, 2, 2, 0, 4, 5, 2, 7, 8, 4, 5, 1, 3, 9, 8, 7]

Demo_dict = {}
for item_str in Demo_list:
    if item_str in Demo_dict:
        Demo_dict[item_str] += 1
    else:
        Demo_dict[item_str]=1
print(Demo_dict)

第四种
Demo_list = [1, 2, 3, 3, 3, 5, 6, 2, 2, 0, 4, 5, 2, 7, 8, 4, 5, 1, 3, 9, 8, 7]

Demo_dict = {}     #定义一个空的字典,在后面的运算中逐步添加数据
for key in Demo_list:     #遍历整个列表
    if key not in Demo_dict:   #判断当前key是否已经存在
        Demo_dict[key]=1       #当前key第一次出现
    else:
        Demo_dict[key]+=1      #在当前key的个数上加 1
print(Demo_dict)

第五种
from collections import Counter
lists =[1,2,3,3,3,5]
print(Counter(lists))

11.== 九九乘法表 ==的输出

使用for循环
for x in range(1,10):
    for y in range(1,x+1):
        print("%d*%d=%2d" %(y,x,y*x),end="\t")   #%号格式化,使用%进行占位,%连接传参,%d格式化整数
    print()

for x in range(1,10):
    for y in range(1,x+1):
        print(f"{x}*{y}={x*y}",end="\t")           #f-string格式化,直接在花括号钟传值
    print()

for i in range(1,10):           #1~9,因为是两个数相乘,所以还需要写一个j
    for j in range(1,i+1):
        print("{}*{}={}\t".format(j,i,i*j),end=' ')   #format格式化
    print()

使用while循环
x= 1
while x < 10:
    y = 1
    while y < x + 1:
        print("%d*%d=%2d" % (y, x, y * x), end="\t")
        y += 1
    x += 1
    print()

12.计算器程序

第一种
while True:
    c = float(input('请输入第一个数字'))
    print("""
    1 +
    2 -
    3 *
    4 /
    5 %
    6 **
    7 //
    """)
    f = input('请输入符号的序号')
    c1 = float(input('请输入第二个数字'))

    if f=='1':
        print(c+c1)
    elif f=='2':
        print(c - c1)
    elif f=='3':
        print(c * c1)
    elif f=='4':
        print(c / c1)
    elif f == '5':
        print(c % c1)
    elif f == '6':
        print(c ** c1)
    elif f == '7':
        print(c // c1)
    else:
        print('error')

第二种
while True:
    p = input('是否继续使用计算器?(yes/no)')
    if p == 'yes':
        a = float(input('输入数字1:'))
        b = float(input('输入数字2:'))
        c = str(input('输入运算法则:'))
        if c == '+':
            z = a + b
            print('%s与%s的和为%s' % (a, b, z))
        elif c == '-':
            z = a - b
            print('%s与%s的差为%s' % (a, b, z))
        elif c == '*':
            z = a * b
            print('%s与%s的乘积为%s' % (a, b, z))
        elif c == '/':
            z = a / b
            print('%s与%s的商为%s' % (a, b, z))
    elif p == 'no':
        break
    else:
        print('错误输入')

13.如果有两个列表,他们都有10个元素,如何生成一个新的列表,对应下表使用这2个列表中值大的那个?== zip ==

比如说列表1[1,2,3,4]列表3[2,1,2,2],得到的结果应为[2,2,3,4]
方法一
list1=[2,54,31,6,42]
list2=[4,98,43,3,2]
list3 = [max(i) for i in zip(list1,list2)]
print(list3)

方法二
lists = []
list1=[2,54,31,6,42]
list2=[4,98,43,3,2]
for a,b in zip(list1,list2):
    n = a if a > b else b
    lists.append(n)
print(lists)

14.自己设计一个程序实现一个功能,比如中国各省市城市查询系统。

15.== 冒泡排序:==对列表进行排序

#利用冒泡排序对列表进行排序
list = [4,1,7,2,5,3,9,8,6]
for i in range(0,len(list)-1):
    for j in range(0, len(list) - i - 1):
        if list[j]>list[j+1]:
            temp = list[j]
            list[j] = list[j+1]
            list[j+1] = temp
print(list)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ゆきな

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值