当前位置: 首页 > news >正文

Python | 刷题日记

1.海伦公式求三角形的面积

area=根号下(p(p-a)(p-b)(p-c))

p是周长的一半

2.随机生成一个整数

import random
x=random.randint(0,9)#随机生成0到9之间的一个数
y=eval(input("please input:"))
if x==y:print("bingo")
elif x<y:print("da le")
elif x>y:print("xiao le")
print(f"随机数是{x}")    

生成多个整数(有范围)

import random
n=input("请输入n:")
n=eval(n)
x=[random.randint(0,100) for i in range(n)]#生成0-100范围内的n个数字
print(x)
even=0
odd=0
for item in x:if item%2==0:even+=1else:odd+=1
print(f'odd num:{odd},even num:{even}')        

3.输出字符金字塔

for i in range(1,6):for j in range(1,-2*i+11):print(" ",end="")s=chr(64+i)    for k in range(1,2*i):print(s,end="")print("\n")    

chr是什么:s=chr(64+i)

在编程中,chr 是一个常见的函数(通常在像 Python 这样的语言中),用于将一个整数(通常是一个 ASCII 或 Unicode 码点)转换为其对应的字符。

在你给出的代码片段 s = chr(64 + i) 中:

  • chr 是该函数的名字。
  • 64 是 ASCII 表中 @ 字符的码点。
  • i 是一个变量,它的值在代码的其他部分被定义或赋值。

当 i 被赋予某个整数值时,64 + i 会计算出一个新的整数,这个整数是 ASCII 表中 @ 字符之后第 i 个字符的码点。然后,chr 函数将这个整数转换为其对应的字符,并将结果赋值给变量 s

例如:

  • 如果 i = 0,则 s 会被赋值为 '@'(因为 64 + 0 = 64,这是 '@' 的 ASCII 码点)。
  • 如果 i = 1,则 s 会被赋值为 'A'(因为 64 + 1 = 65,这是 'A' 的 ASCII 码点)。
  • 如果 i = 2,则 s 会被赋值为 'B',依此类推。

注意:如果 i 的值导致 64 + i 超出了 ASCII 表的范围(即,大于 127),那么结果字符将是一个扩展 ASCII 字符或 Unicode 字符(取决于你的系统和语言实现)。但在大多数 ASCII 环境中,只有 0 到 127 的值是有定义的。

4.利用sum求解列表的和

x=list(eval(input("请输入几个数字:")))
print("这几个数字的和是{}".format(sum(x)))

 5.追加元素

fi=[1,1]
n=2
while len(fi)<20:s=fi[n-1]+fi[n-2]fi.append(s)#错误写法:fi[n]=fi[n-1]+fi[n-2]#列表追加元素是appendn+=1
print(fi)    

6.计算n个值

n=eval(input("请输入:"))
print(sum(int("6"*i) for i in range(1,n+1)))
#计算 6+6+666+...

7.利用string里面的ascii_uppercase和ascii_lowercase来计算大写和小写字母的和

import string 
s=input("请输入一个字符:")
upper=string.ascii_uppercase
lower=string.ascii_lowercase
ans=0
for item in s:if item in upper:ans+=ord(item)-65+1if item in lower:ans+=ord(item)-97+1 
print(ans)

A:65

a:97

ord 求ASCII值

chr 求ASCII对应的符号

ord的用法

8.如何实现按照每行10个元素输出元素

for i in range(0,50,10):
    print(list1[i:i+10])

import random as r
list1=[r.randint(0,10) for i in range(50)]
#如何实现按照每行10个元素输出元素
for i in range(0,50,10):print(list1[i:i+10])
for i in range(10):print(f'{i}出现的次数:{list1.count(i)}')

9.怎样去除重复的元素,而且不影响原来的顺序

思路:创造两个列表

import random as r
list1=[r.randint(0,9) for i in range(30)]
print(list1)
list2=[]
for i in list1:if i not in list2:list2.append((i))
print(list2)

10.巧用sorted

 

import random
list1=[random.randint(10,99) for i in range(20)]
print(list1)
list1=sorted(list1[:10])+sorted(list1[10:],reverse=True)
print(list1)

 

 对偶数下标进行降序,奇数下标不变

import random
list1=[random.randint(10,99) for i in range(20)]
print(list1)
list1[::2]=sorted(list1[::2],reverse=True)
#0 2 4
print(list1)

11.fromkeys

字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None。

 

	dict .fromkeys(iterable, [value = None])
  • 使用给定的一些键创建一个新的字典,所有键对象的值为None.
>>> {}.fromkeys(["name", "age"])
{'name': None, 'age': None}
  • 当然,如果不想使用None来作为默认的值,也可以给定其他值.
>>> {}.fromkeys(["Jack", "Chow","Fook"], 0)			# 注意这里只能附一个值
{'Jack': 0, 'Chow': 0, 'Fook': 0}

 

  • 如果想赋上对于的value值的话,可以单独在对其赋值,不可append()
>>> {}.fromkeys(["Jack", "Chow","Fook"], 0)
{'Jack': 0, 'Chow': 0, 'Fook': 0}
>>> a =  {}.fromkeys(["Jack", "Chow","Fook"], 0)
>>> a["Jack"] = "Jessie007"
>>> a
{'Jack': 'Jessie007', 'Chow': 0, 'Fook': 0}

 切记不要append


>>> a =  {}.fromkeys(["Jack", "Chow","Fook"], [])
>>> a['Jack'].append(9527)
>>> a
{'Jack': [9527], 'Chow': [9527], 'Fook': [9527]}

输入1行英文句子,统计各个单词出现的次数

text = input("请输入句子").lower().split()
dicttext={}.fromkeys(text,0)
for x in text:dicttext[x]+=1
print(dicttext)


 

text = input("请输入句子").lower().split()
  • input("请输入句子"): 从用户那里获取一个字符串输入,该字符串代表一个句子。
  • .lower(): 将句子中的所有大写字母转换为小写字母。这样做是为了确保在后续的词频统计中,例如"Hello"和"hello"被视为同一个单词。
  • .split(): 默认情况下,这个方法会在任何空白(空格、制表符、换行符等)处分割字符串,返回一个单词列表。所以,如果输入是"Hello, world!",经过.lower().split()后,text的值会是一个列表['hello,', 'world!']。注意,这里的逗号和感叹号仍然被视为单词的一部分,因为它们之间有空白分隔。
dicttext = {}.fromkeys(text, 0)
  • {}: 创建一个空字典。
  • .fromkeys(text, 0): 这是一个类方法,用于从text列表中创建字典的键,并将所有键的值初始化为0。因此,如果text['hello,', 'world!'],则dicttext会是{'hello,': 0, 'world!': 0}。这里,字典的键是句子中的单词(或更确切地说,是空白分隔的字符串片段),值都是0,表示这些单词的初始出现次数。
for x in text:
dicttext[x] += 1
  • 这是一个循环,遍历text列表中的每个单词(或字符串片段)。
  • 对于每个单词x,它增加dicttext中对应键的值。由于之前我们已经将所有键的值初始化为0,所以这里实际上是统计每个单词在句子中出现的次数。
print(dicttext)
  • 这行代码打印出dicttext字典,即每个单词(或字符串片段)及其在句子中的出现次数。

注意:如果你的目标是统计真正的单词(即,不考虑标点符号),你可能需要在调用.split()之前或之后进一步处理text列表,例如使用正则表达式或简单的字符串替换来移除标点符号。

12.计算天数

import  calendar as c
year=int(input("请输入年份:"))
month=int(input("请输入月份:"))
day=int(input("请输入天数:"))
sum=0
da={"1":31,"2":28,"3":31,"4":30,"5":31,"6":30,"7":31,"8":31,"9":30,"10":31,"11":30,"12":31}
if c.isleap(year):da["2"] = 29if int(month)>1:for i in range(1,int(month)):sum+=da[str(i)]sum+=day
else:sum+=day
print(sum)

 

http://www.lryc.cn/news/363911.html

相关文章:

  • “JS逆向 | Python爬虫 | 动态cookie如何破~”
  • 十.数据链路层——MAC/ARP
  • Linux主机安全可视化运维(免费方案)
  • Vite + Vue 3 前端项目实战
  • python-字符替换
  • 团队项目开发使用git工作流(IDEA)【精细】
  • 爬虫案例实战
  • uniapp uni-popup内容被隐藏问题
  • leetcode155 最小栈
  • 在Ubuntu乌班图上安装Docker
  • 【Redis数据库百万字详解】数据持久化
  • echarts legend. icon的展示
  • PHPstudy情况下上传图片马需要的.htaccess文件
  • 基于最大重叠离散小波变换的PPG信号降噪(MATLAB 2018)
  • Gradio中Button用法及事件监听器click方法使用
  • 【Qt秘籍】[005]-Qt的首次邂逅-创建
  • 亚信安慧AntDB:值得信任的数据产品
  • 超越传统AI 新型多智能体系统MESA,探索效率大幅提升
  • [SWPU 2019]神奇的二维码、buuctf部分web题
  • Python正则表达式匹配中文:深入解析与实战应用
  • 实例Python对比两个word文档并找出不同
  • 2.1 QT随手简记(三)
  • TechM-技术网站
  • SpringBoot: 使用GraalVM编译native应用
  • 9. MySQL事务、字符集
  • 为什么要学习数据结构和算法
  • CANoe仿真工程Switch控件关联dbc信号出现的问题及解决思路
  • 用开源模型MusicGen制作六一儿童节专属音乐
  • Ps:批处理
  • 前端框架中的虚拟DOM和实际DOM之间的关系