python语法

python语法考点

格式控制输出(选其一)

%

  • 常用的格式化控制符
    • %d:整数
    • %s:字符串
    • %f:浮点数
print("name:%5s weight:%5.2f."%("Alex",1.83))
#5表示占位符,2表示小数点后几位

format语句

  • 占位符{}
  • 格式限定符:,填充与对齐(^、<、>分别是居中、左对齐、右对齐,后面带宽度
print("{:>8}{:>8}{:>8}".format(a,b,c))
  • 精度与类型
print("{:8.2f}".format(5.796))
# 8表示字符宽度,2表示保留2位小数(四舍五入原则)
  • 其它类型(b、d、o、x分别是二进制、十进制、八进制、十六进制)
print("二进制:{:b}".format(23))
print("八进制:{:o}".format(23))
print("十进制:{:d}".format(23))
print("十六进制:{:x}".format(23))
  • 逗号作为金额的千位分隔符
print("{:,}".format(105922236))

Math库里的内置函数

  • exp(x):返回e的x次方
  • log:返回x的自然对数
  • log10(x):返回x的10次方对数
  • sqrt(x):返回x的平方根 ***
  • pow(x,y):返回x的y次方根
  • pi:返回圆周率Π的近似值
  • e:返回自然对数的底数e的近似值
  • ceil:向上取整 ***
  • floor:向下取整 ***
  • modf:返回输入参数的小数部分和整数部分
  • fabs:返回输入参数的绝对值 ***
  • factorial:计算输入参数的阶乘 ***
  • degrees:将弧度转化为角度
  • radians:将角度转化为弧度
  • fmod(x,y):返回浮点数x和y的余数,相当于python中的%
  • gcd(x,y):返回两个整数的最大公约数
  • lcm(x,y):返回两个整数的最小公倍数

单行多个数据的输出

a,b = map(int,input().split())   

多行输入存储

都为同一类型时

1、例题:

image

2、解法:

n = int(input())
li = [[i for i in map(int,input().split())] for j in range(n)]  # 内层数组遍历一行数据,使用map,返回一个整数;第二层数组通过循环n次,遍历完n行数组,每行都使用内层数组的方法
print(li)
# 结果为:[[125, 99], [112, 89], [145, 99], [99, 97], [123, 98]]

为不同类型时

1、例题:

image

2、解法:

n = int(input())
li = [input().split() for _ in range(n)]
print(li)
# 输出为:[['87', 'lilei'], ['99', 'hanmeimei'], ['97', 'lily'], ['96', 'lucy'], ['77', 'jim']]
li = sorted(li, key=lambda x:x[0], reverse=True)
print(li[0][1])

Input与split搭配

# 将You want someone to help you转化为['You', 'want', 'someone', 'to', 'help', 'you']形式
s = input().split()

字符与ASCII的转换

  • ord():将字符转换为ASCII码

  • chr():将ASCII码转换为对应的字符

例题:

image

解答:

n = eval(input())
print(chr(n))          # 直接对chr()进行转换

获取正整数的最大范围

import sys
Maxsize = sys.maxsize

列表的调转

reverse():在列表内调转,不用重新赋值

li = [5,4,3,2,1]
li.reverse()
print(li)
# 结果为[1,2,3,4,5]

正则表达式

元字符

image

预定义字符集与数量词

image

re模块及其函数的运用

步骤

  1. 将正则表达式的字符串编译为Pattern实例

    import re
    pattern = re.compile("")
    
  2. 使用Pattern实例处理文本并获得匹配结果

    re模块常用的函数:

    image

    例题

    例题1

image

解答1:

str1 = input().split()
count = 0
import re
pattern = re.compile(r"\d")
for i in str1:
    li = re.findall(pattern,i)
    count += len(li)
print(count)

例题2:

image

解答2:

import re
pattern = re.compile("[ ,.]")
words = re.split(pattern,input())       # 使用正则表达式对字符串进行分割
word = [i for i in words if i != ""]    # 运用列表推导式对正则表达式分割符遗留的空字符串进行处理
word_num = [len(j) for j in word]
max_num = max(word_num)
min_num = min(word_num)
for i in word:
    if len(i) == max_num:
        print(i)
        break
for j in word:
    if len(j) == min_num:
        print(j)
        break

字符串

字符串的比较

字符串的比较是通过字符串字典序列一步步进行比较的

a = "1234"
b = "23"
print(a<b)
# 结果为True

lower和upper的用法

lower和upper只会把字符串中的每个字母转化为小写和大写形式,不会改变原字符串,需额外定义一个变量,输出结果为字符串形式

  1. 例题

image

  1. 代码实现
n = int(input())
li = [input() for _ in range(n)]
for i in li:
    print(i[0].upper()+i[1:len(i)+1].lower())

连接方法join的用法

将可迭代对象(该迭代对象的元素必须为字符串形式)通过规定的形式进行连接,最后生成一个字符串

  1. 例子

    image

  2. 代码实现

    li = input().split()
    length = []
    for i in li:
        length.append(str(len(i)))
    print(",".join(length))
    
posted @ 2023-10-30 20:36  byyya  阅读(34)  评论(0)    收藏  举报