<jupyter_start><jupyter_text>数学函数、字符串和对象 本章介绍Python函数来执行常见的数学运算- 函数是完成一个特殊任务的一组语句，可以理解为一个函数相当于一个小功能，但是在开发中，需要注意一个函数的长度最好不要超过一屏- Python中的内置函数是不需要Import导入的  尝试练习Python内置函数<jupyter_code>max(1,1,2,2,3,4,4)
pow(4,5,2)
import math
a=10
res = math.fabs(a)
print(res)
%time
a=10
res = math.fabs(a)
print(res)
x=eval(input('give a number'))
res=math.fabs(2*x)
print(res)
b=2.5
res=math.ceil(b)
print(res)
b=2.5
res=math.floor(b)
print(res)<jupyter_output>2<jupyter_text>Python中的math模块提供了许多数学函数<jupyter_code>e=2

import math
math.sqrt(4)
math.sin(math.radians(90))
math.pi
math.e<jupyter_output><empty_output><jupyter_text>两个数学常量PI和e，可以通过使用math.pi 和math.e调用  EP:- 通过math库，写一个程序，使得用户输入三个顶点(x,y)返回三个角度- 注意：Python计算角度为弧度制，需要将其转换为角度<jupyter_code>(x1,y1)=eval(input('输入坐标'))
(x2,y2)=eval(input('输入坐标'))
(x3,y3)=eval(input('输入坐标'))
a=math.sqrt(math.pow(x2-x3,2)+math.pow(y2-y3,2))
b=math.sqrt(math.pow(x1-x3,2)+math.pow(y1-y3,2))
c=math.sqrt(math.pow(x2-x1,2)+math.pow(y2-y1,2))
radianA=math.acos((a*a-b*b-c*c)/-2*b*c)
radianB=math.acos((b*b-a*a-c*c)/-2*a*c)
radianC=math.acos((c*c-b*b-a*a)/-2*a*b)
degreeA=math.todegrees(radiansA)
degreeB=math.todegrees(radiansB)
degreeC=math.todegrees(radiansC)
print(A,B,C)
x1,y1=0,0
x2,y2=0,3
x3,y3=4,0
a=math.sqrt(math.pow(x2-x3,2)+math.pow(y2-y3,2))
b=math.sqrt(math.pow(x1-x3,2)+math.pow(y1-y3,2))
c=math.sqrt(math.pow(x2-x1,2)+math.pow(y2-y1,2))
radianA=math.acos((a*a-b*b-c*c)/-2*b*c)
radianB=math.acos((b*b-a*a-c*c)/-2*a*c)
radianC=math.acos((c*c-b*b-a*a)/-2*a*b)
degreeA=math.todegrees(radiansA)
degreeB=math.todegrees(radiansB)
degreeC=math.todegrees(radiansC)
x1=eval(input('输入坐标'))
x2=eval(input('输入坐标'))
y1=eval(input('输入坐标'))
y2=eval(input('输入坐标'))
x3=eval(input('输入坐标'))
y3=eval(input('输入坐标'))
a=math.sqrt(math.pow(x2-x3,2)+math.pow(y2-y3,2))
b=math.sqrt(math.pow(x1-x3,2)+math.pow(y1-y3,2))
c=math.sqrt(math.pow(x2-x1,2)+math.pow(y2-y1,2))
print(a,b,c)
a=1
b=1
c=math.sqrt(2)
A=math.acos((math.pow(a,2)-math.pow(b,2)-math.pow(c,2))/(-2*b*c))
B=math.acos((math.pow(b,2)-math.pow(a,2)-math.pow(c,2))/(-2*a*c))
C=math.acos((math.pow(c,2)-math.pow(b,2)-math.pow(a,2))/(-2*b*a))
A=math.degrees(A)
B=math.degrees(B)
C=math.degrees(C)
print(A)
print(B)
print(C)<jupyter_output>44.999999999999986
44.999999999999986
90.00000000000001<jupyter_text>字符串和字符- 在Python中，字符串必须是在单引号或者双引号内，在多段换行的字符串中可以使用“”“- 在使用”“”时，给予其变量则变为字符串，否则当多行注释使用<jupyter_code>b="""joker
is
a
good
man"""
print(type(a))
#三引号可以当文本使用；当你不给予变量的时候 ，可以当做注释（没有等号给予变量）
"""joker
is
a
good
man"""
#\n换行符<jupyter_output><empty_output><jupyter_text>ASCII码与Unicode码- - -   函数ord、chr- ord 返回ASCII码值- chr 返回字符<jupyter_code>chr(11)
ord('\x0b')
ord('1')
ord('@')
chr(1*6*5*9*7*3*4)
str='<EMAIL>'
for i in rang(len(str))
print chr(ord(str[i])-1)<jupyter_output><empty_output><jupyter_text>EP:- 利用ord与chr进行简单邮箱加密  转义序列 \- a = "He said,"Johon's program is easy to read"- 转掉它原来的意思- 一般情况下只有当语句与默认方法相撞的时候，就需要转义<jupyter_code>b="joker"old"a"

b="joker'old'a"
print(b)
# 三引号和单双引号的区别是：三引号内可以换行 不加变量代表注释（可以换行注释）

#单双引号不可混合用，必须成对出现

#如果必须混合使用，可以使用\（转义字符），表示转掉它原来的意思<jupyter_output><empty_output><jupyter_text>高级print- 参数 end： 以什么方式结束打印- 默认换行打印<jupyter_code>print('joker','is','hhh')
print('joker','is','hhh',sep="***")<jupyter_output>joker***is***hhh<jupyter_text>函数str- 将类型强制转换成字符串类型- 其他一些以后会学到(list,set,tuple...)<jupyter_code>a=100
str(a)
float(a)
int(a)
import sys,time

for i in range(100):
    print('')<jupyter_output><empty_output><jupyter_text>字符串连接操作- 直接使用 “+” - join() 函数   EP：- 将 “Welcome” “to” "Python" 拼接- 将int型 100 与 “joker is a bad man” 拼接- 从控制台读取字符串> 输入一个名字返回夸奖此人<jupyter_code>''.join(('Welcome','to','Python'))
str1='welcome'
str2='to'
str3='python'
print(str1,str2,str3)
str1=(100)
str2='joker is a bad man'
print(str1,str2)
str1=input('请输入名字')
str2='真帅'
str3=str1+str2
print(str3)
str='sdffffd1245'
for i in rang(ord(str))
print chr(ord(str[i])-1)<jupyter_output><empty_output><jupyter_text>实例研究：最小数量硬币- 开发一个程序，让用户输入总金额，这是一个用美元和美分表示的浮点值，返回一个由美元、两角五分的硬币、一角的硬币、五分硬币、以及美分个数 - Python弱项，对于浮点型的处理并不是很好，但是处理数据的时候使用的是Numpy类型  id与type- id 查看内存地址，在判断语句中将会使用- type 查看元素类型  其他格式化语句见书  Homework- 1<jupyter_code>import math
r=eval(input('Please input the length from the center to a vertex'))
s=2*r*math.sin(math.pi/5)
area=5*s**2/(4*math.tan(math.pi/5))
print("the area of the pentagon is",format(area,"5.2f"))<jupyter_output><empty_output><jupyter_text>- 2<jupyter_code>import math
x1,y1=eval(input("Please input point1(latitude and longitude)in degrees"))
x2,y2=eval(input("Please input point2(latitude and longitude)in degrees"))
radius=6371.01
x11=math.radians(x1)
y11=math.radians(y1)
x22=math.radians(x2)
y22=math.radians(y2)
d=radius*math.acos(math.sin(x11)*math.sin(x22)+math.cos(x11)*math.cos(x22)*math.cos(y11-y22))
print("The distance between the two points is %5.2f km"%d)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.2096133751306165, 'fraction_numerical': 0.055590386624869384, 'mean_word_length': 9.226495726495726, 'pattern_counts': {'":': 0, '<': 43, '<?xml version=': 0, '>': 44, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 3, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '11', 'dir': 'jupyter-structured-clean-dedup', 'id': '84328', 'license': 'Apache-2.0', 'n_tokens_mistral': 2904, 'n_tokens_neox': 2978, 'n_words': 252, 'path': '7.17.ipynb', 'repo_name': 'Flqiong/python', 'size': '4795'}