只因本功练习1

一共103个题,都是基础中的基础。断断续续写了好几天才完成
(放假真的会变懒,正在做出改变)
选了一些不熟悉的题型,附对应知识整理,没事多看看。
fighting ! ! !

控制小数的位数

a = float(input())
print('%.2f'%a)
1.000000
1.00

控制python中的浮点数输出的位数,一般有三种方法:

① 使用round函数,用法为:round( x [, n] ),x为浮点数,n为保留的小数位数参数是可选的如果不写那么默认不保留小数

② 利用"%nf"输出n位小数

③ 使用format函数格式化数字输出,format函数中使用一个大括号表示需要填充的参数,:后面可以规定数字的精度与类型

十六进制转十进制

num16 = input()
num10 = int(num16,16)
print(num10)
A
10

int() 方法的语法:
class int(x, base=10)

参数
x -- 字符串或数字。

base -- 进制数,默认十进制。

返回值
返回整型数据。

int() 方法的实例:

>>>int()               # 不传入参数时,得到结果0
0
>>> int(3)      #  输入整数的时候,默认10进制
3
>>> int(3.6)     #   浮点数向下取值
3
>>> int('12',16)        # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)     #   16进制 转10进制
10  
>>> int('10',8)     #  8进制转10进制
8

字符串连接

 字符串连接的几种方法整理:

print( name1 + name2 )

print("".join([name1,name2]))

print(f"{name1}{name2}".format(name1,name2))

print(f"{name1 + name2}".format(name1 + name2)

格式化输出

(1)
.lower()        全部小写
.upper()        全部大写
.title()        各个字符的首字母大写
.capitalize()        首字母大写

(2)

.strip()        删除两边空格
.lstrip()        删除左边空格
.rstrip()        删除右边空格
.replace(" ","")        删除所有空格
.split()        先切分        "".join()        再拼接

发送offer 

offer_list = ['Allen','Tom']

for i in range(len(offer_list)):
    print('{}, you have passed our interview and will soon become a member of our company. '.format(offer_list[i]))

for str_i in offer_list:
    if str_i == 'Tom':
        print('Andy, welcome to join us!')
    else:
        print('{}, welcome to join us! '.format(str_i))

生成数字列表

思路:

使用split()函数将字符串转化为列表

对列表进行for 循环对每个元素进行int()格式转化加工后输出

str1=input()
 
#使用split()将字符串生成列表
list1=str1.split()
 
#创建一个空列表
list2=[]
 
#将数据处理后依次插入到列表(这一步可以简化,详见下方一个代码块)
for i in list1:
    i=int(i)
    list2.append(i)
print(list2)

简化后的代码如下:

#这是另一个知识点,list推导式
list1 = [int(i) for i in input().split()]
print(list1)

# 知识拓展:list其他操作

list的操作和str的操作还挺相似的,它俩最本质的区别在于list可变,str不可变

list的操作主要有:内置函数,method

还要再补充一个很好用的东西:list的推导式

list内置函数和method的区别,有一个比较粗浅的记忆方法:凡是会改变原来list的都是method,以sorted(list)和list.sort 为例

list1 = [9, 7, 23, 18, 45, 2, 96, 37]

# 临时排序,不改变list1
print(sorted(list1))
print(list1)

# 对list1本身进行调整,改变list1
list1.sort()
print(list1)
[2, 7, 9, 18, 23, 37, 45, 96]
[9, 7, 23, 18, 45, 2, 96, 37]

[2, 7, 9, 18, 23, 37, 45, 96]

list常见内置函数:

  • len() :求列表元素个数
  • max() :求列表最大值
  • min() :求列表最小值
  • sum() :求列表的和
  • sorted() :求排序后的列表序列
  • list() :将其他数据结构转换成列表
  • any() :只要列表里有一个True就会返回True
  • all():表里的所有元素都是True才会返回True
  • enumerate() :可以配合for循环使用,提取列表元素的位置信息
ws = ["崔瀺", "左右", "君倩", "齐静春", "陈平安"]
for i, j in enumerate(ws):
    print(f"第{i + 1}个徒弟是{j}")
第1个徒弟是崔瀺
第2个徒弟是左右
第3个徒弟是君倩
第4个徒弟是齐静春
第5个徒弟是陈平安

list常见method:

  • list.append(元素):在末尾添加一个元素
  • list.insert(位序,元素):可以看作是更强大的append,在特定的位置插入数据
  • list.pop(位序):返回删除的特定位置元素
  • list.remove():删除指定元素
  • list.extend():合并两个列表
  • list.copy():复制原列表
  • list.clear():清空列表
  • list.index(元素):搜索元素在序列的第几个位置
  • list.count():计算某个元素在列表中出现的次数
  • list.reverse():反转排序
  • list.sort():升序排列
  • list.sort(reverse=True):降序排列

list推导式:

list2 = [推导语句 for i in list1] ,可以省略append和创建空list这两个步骤。

二进制位运算

第一遍时候题目没读懂,然后去转进制,七万八拐,理解题目真的很重要。

x,y = input().split()
print(int(x)&int(y))
print(int(x)|int(y))

计算平均绩点

难点:阅读理解题目,平均绩点的算法(我是一遍没看懂)

使用自己的分数*绩点数的和/(所有总绩点的和-注意是输入的成绩)

例如题目(3*4+4*3+2*2)/(3 + 4 + 2) = 28/7=3.11

temp = 0
result = 0
try:
 
    while True:
        level = input()
        level_score = {"A": 4, "B": 3, "C": 2, "D": 1, "F": 0}
        # 输入的内容
        if level != "False":  # 如果输入false会自动退出循环
            score = int(input())
            # 定义一个字典来存储等级绩点
            result = result + level_score[level] * score
            temp = temp + score
        else:
            break
except Exception as e:
    print(e)
finally:
    temp2 = result / temp
    print("%.2f" % temp2)

字符串列表的长度

my_list = ['P','y','t','h','o','n']
print('Here is the original list:')
print(my_list)
print()
print('The number that my_list has is:')
print(len(my_list))

疑问:打印空格\n的区别?

打印空格         显示两个空行

打印  \n           显示一个空行

跳过列表的某个元素

for i in range(1,16):
    if i == 13:
        continue
    else:
        print(i,end = ' ')

sep和end的区别:
end: 决定输出语句以什么符号结尾,默认是换行。        eg: 换行  end=" "
sep: 定义print函数中分割对象的符号,默认是空格。        eg: 空格  sep=" "

1.sep用法:        sep = '(想使用的分隔符)'

2.end用法:        end = '(想使用的结束符)'

矩阵相加

list = [[1,2,3],[4,5,6],[7,8,9]]
n = int(input())
res = [[x*n for x in i] for i in list]
print(res)

对列表进行嵌套时,要注意[ ]和( )的使用情况,判断每一步输出的数据类型

字符串查找

find函数

1. 定义

Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

2. 语法

str.find(str, beg=0, end=len(string))

        str---a指定检索的字符串

        beg---开始检索,默认为0

        end---结束检索,默认为字符串的长度

3.  返回值

如果包含子字符串返回开始的索引值,否则返回-1。


单词造句

join函数 

1. 定义:

连接任意数量的字符串(包括要连接的元素字符串、元组、列表、字典),用新的目标分隔符连接

2. 语法:

'sep'.join(sep_object)

        sep:分割符。

        sep_object:分割对象,可为字符串、以及储存字符串的元组、列表、字典。

        (1)对象为字符串

';'.join('abc') 
# 输出结果为:'a;b;c'  
 
string1 = 'good idea'
# 定义字符串
' '.join(string1)  
# 输出结果:'g o o d   i d e a' 
 
#说明:由于字符串里没指明按字符串之间是怎么连接的,默认每个字符之间插入目标字符

        (2)对象为元组

tuple1 = ('a','b','c')  #定义元组tuple1
'、'.join(tuple1)
 
tuple2 = ('hello','peace','world')  #定义元组tuple2
' '.join(tuple2)

        (3)对象为列表

b = ['a','b','c'] #定义列表
'、'.join(b)
 
list1 = ['hello','peace','world'] #定义列表
' '.join(list1)

        (4)对象为字典

c={'hello':1,'world':2}
';'.join(c)
d = {'hello':'hi','world':'2'}
' '.join(d)

3. 返回值:返回新的字符串。

4. 易错点及其解决方法

        (1)问题:储存非字符串的元组、列表、字典等报错,比如元组储存数字进行连接

a = (1,2,3) #定义元组a
';'.join(a)
#报错:TypeError: sequence item 0: expected str instance, int found

        (2)解决方法:结合for循环语句,将数字转为字符串再连接起来

a = (1,2,3) #定义元组a
';'.join(a)
 
b = (186234,1385475,1235462)
';'.join(str(i) for i in b)
 
#调用set函数去重处理
e = (1,2,3,2) #定义元组a
'、'.join(str(i) for i in set(e))

保留小数分位

round函数

1. 是python自带的函数,用于数字的四舍五入

2. 语法

round(number,digit)

       (1) digits > 0,四舍五入到指定的小数位

       (2) digits = 0, 四舍五入到最接近的整数

            如果round()函数只有number这个参数,等同于digits=0

       (3) digits < 0 ,在小数点左侧进行四舍五入

ps:四舍五入规则

(1)要求保留位数的后一位<=4,则进位。

        round(5.214,2)        保留小数点后两位,结果是 5.21

(2)要求保留位数的后一位“=5”,且该位数后面没有数字,则不进位。

        round(5.215,2)        结果为5.21

(3)要求保留位数的后一位“=5”,且该位数后面有数字,则进位.

        round(5.2151,2)        结果为5.22

(4)要求保留位数的后一位“>=6”,则进位。

        round(5.216,2)        结果为5.22

结束语

放假快半个月重新捡起python发现好多都眼熟但是不会写,忘了的没记的都有,很头疼

写的过程也是断断续续,两三天能写完的硬是拖了一周

还是得做出改变啊,不能摆烂

这算是小小的第一步吧,假期也过了三分之一,后面还是每天花点儿时间认真学点儿东西吧

唉,又是觉醒的一天

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值