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)