《python语言程序设计》_第三章(数字函数、字符串和对象)

3.2_常见的Python函数

(1) abs()函数 求绝对值

(2) max(x1,x2,x3,....)求最大值

(3) min(x1,x2,x3,....)求最小值

(4) pow 返回a的b次方,类似a**b

(5) round(x) 返回最接近x的整数,如果x与两个整数接近程度相同,则返回偶数值

(6) round(x,n) 保留小数点后的n位浮点数(其实就是保留小数点后的n位数)

数学函数里面的函数:

(1)  fabs(x) 将x看作一个浮点数,返回它的绝对值

(2)  ceil(x) x向上取最近的整数,然后返回这个整数

(3)  floor(x) x向下取最近的整数,然后返回这个整数

(4)  exp(x) 返回幂函数e的x次方

(5)  log(x) 返回x的对数(注意,以e为底,x为正数)

(6)  log(x,a) 以a为底的x的对数

(7) sqrt(x) 返回x的平方根值

(8)  sin(x) 返回x的正弦值

(9)  asin(x) 返回x的弧度值

(10)  cos(x) 返回x的余弦值,x是角度的弧度值

(11)  acos(x) 返回acos的弧度值

(12) tan(x) 返回tan(x)的值,x是角度的弧度值

(13) degrees(x) 将x从弧度转换成角度

(14) radians(x) 将x从角度转换成弧度

程序清单3-1

import math
print("exp(1.0)=",math.exp(1))
print("log(2.78)=",math.log(2.78))
print("log(10,10)=",math.log(10,10))
print("sqr(4.0)=",math.sqrt(4.0))
print("sqr(4)=",math.sqrt(4))
print("sin(PI/2)=",math.sin(math.pi / 2))
print("degrees(1.57)=",math.degrees(1.57))
print("radians(90)=",math.radians(90))
#逗号前面的说明,原原本本读取,逗号后面的是函数,返回是函数的值

结果:

exp(1.0)= 2.718281828459045
log(2.78)= 1.0224509277025455
log(10,10)= 1.0
sqr(4.0)= 2.0
sqr(4)= 2.0
sin(PI/2)= 1.0
degrees(1.57)= 89.95437383553924
radians(90)= 1.5707963267948966

 

 程序清单2:

(已知公式)

知道三个点的坐标,求三角形的三个角

 程序:

import math
x1,y1,x2,y2,x3,y3 = eval (input("Enter three points:"))
a=math.sqrt((x2-x3)**2+(y2-y3)**2)
b=math.sqrt((x1-x3)**2+(y1-y3)**2)
c=math.sqrt((x1-x2)**2+(y2-y1)**2)
#计算a,b,c的长度
A=math.degrees(math.acos((a**2-b**2-c**2)/(-2*b*c)))
B=math.degrees(math.acos((b**2-a**2-c**2)/(-2*a*c)))
C=math.degrees(math.acos((c**2-b**2-a**2)/(-2*b*a)))
print("The three angles are",round(A*100)/100.0,round(B*100)/100.0,round(C*100)/100.0)
#round(A*100)/100.0 为了保留两位浮点数,相当于round(A,2),不知道过程转换?

结果:

Enter three points:1,1,6.5,1,6.5,2.5
The three angles are 15.26 90.0 74.74

3.3_字符串和字符

(1)双引号 " "和单引号 ' '都可以括住一个字符串,但是单引号习惯括住单个字符和空值,双引号括住一串字符串

3.3.1_ASCII码

把一个字符映射成对应的二进制被称为字符编码

3.3.2_同一码

3.3.4_转义序列

如果想要输入带有引号的字符串,直接编写这段字符串就不会得到想要的结果

比如显示:He said,:"John's program is easy to read"

如果直接编写,则是print("He said,:"John's program is easy to read"”),就会显示语句错误,Python判断不出双引号是字符串里面的

正确的是:

 print("He said,:\"John's program is easy to read\"")

注意:\紧接加上字符 构成的特殊字符称作转义序列

\n  表示换行或者行结束

\f  表示让打印机从下一页开始打印

\r  表示把光标移动的同一行的第一个位置

3.3.5_不换行打印

print(item,end="anyendingstring")      >>>显示“  itemanyendingstring     #而且不换行地显示另一个print()内的内容

比如:

程序1:
print("AAA",end='+')
print("BBB",end='--')

>>>AAA+BBB--

程序2:

import math
radius=3
print("The area is",radius*radius*math.pi,end=' ')
print("and the perimeter is",2*radius*math.pi)

>>>The area is 28.274333882308138 and the perimeter is 18.84955592153876  #如果没有设置不换行,就会自动切换成两行。

 

3.3.6_函数str

函数str 表示把一个数字转换成一个字符串

 

3.3.7_字符串连续操作

程序1:

程序2:

message="Welcome"+"to"+"python"
message+="and python is fun"
print(message)

结果:

>>>Welcometopythonand python is fun

程序3:

s1=input("Enter a string:") #输入一个字符串s1
s2=input("Enter a string:") #输入一个字符串s2
s3=input("Enter a string:") #输入一个字符串s3
print("s1 is"+s1)

结果:


Enter a string:321

Enter a string:123

Enter a string:231
s1 is321

 

 

3.4_研究实例:最小数量的硬币

程序清单3-4

程序:

amount=eval(input("Enter an amount,for example,11.56:"))
#输入一个值
remainingAmount=int(amount*100)
#对输入的一个值乘以100,然后取整,转换成分数,命名为remainingAmount
numberOfOneDollars=remainingAmount//100
remainingAmount=remainingAmount%100
#分数//100得到美元数(即是整数部分),命名为numberOfOneDollars。
#分数%100得到得到余数即是剩余的分数,命名为remainingAmount
numberOfQuarters=remainingAmount//25
remainingAmount=remainingAmount%25
#remainingAmount//25得到两角伍分的数,命名为numberOfQuarters。
#remainingAmount%25得到除以两角五分剩下的分数(必定小于两角五分)
numberOfDimes=remainingAmount//10
remainingAmount=remainingAmount%10
#将剩余的分数除于10得到一角硬币的个数,命名为numberOfDimes
numberOfNickels=remainingAmount//5
remainingAmount=remainingAmount%5
#将剩下不足以10分的remainingAmount除于5,得到五分硬币的个数numberOfNickels

numberOfPennies=remainingAmount

print("Your amount",amount,"consist of\n",
"\t",numberOfOneDollars,"dollars\n",
"\t",numberOfQuarters,"quaters\n",
"\t",numberOfDimes,"dimes\n",
"\t",numberOfNickels,"nickels\n",
"\t",numberOfPennies,"pennies")

结果:

Enter an amount,for example,11.56:11.56
Your amount 11.56 consist of
11 dollars
2 quaters
0 dimes
1 nickels
1 pennies

3.5_对象和方法简介

id()和type()函数获取对象信息。

lower()把数值变成了小写,upper把数值变成了大写。

程序1:

s="welcome"
s1=s.lower()
print(s1)
s2=s.upper()
print(s2)

结果:

welcome
WELCOME

 #strip()被用来移除一个字符串两端的空格符。空格符有:' ' 、 \t 、  \f 、\r 、\n 

程序2:

s="\t WElcome \n"
s1=s.strip() #调用strip
print("s is" ,s)
print(s1)

结果返回:WElcome

# 3..6 _格式化数字和字符串

#round( item , n )  #当保留n位小数,当第n位为0时,只是显示n-1位。比如n=2时候,14.10111显示的是14.1

程序:

amount=12618.98
interestRate = 0.0013
interest=amount * interestRate
print("Interest is",round(interest,2))

结果:16.4

程序:

amount=12618.98
interestRate = 0.0013
interest=amount * interestRate
print("Interest is",round(interest,3))

结果:

16.405

 

#format ( item , format_specifier)  #format_specifier格式说明符

#print(item , 域宽度.精度转换码) #域宽度指的是整个数的长度,精度指的是小数点后面可以保留多少个小数

程序

print(format(57.467657,"10.2f"))       #域宽度是10,2是精度,f是转换码,当域宽度被省略的时候,那就默认域宽度为0,宽度会根据格式化这个数所需要的宽度自己设置
print(format(12345678.923,"10.2f"))
print(format(57.4,"10.2f"))

结果:

 

 #用科学计数法格式化

程序:#加减+-和点。都算在宽度里面

print(format(57.467657,"10.2e"))
print(format(12345678.923,"10.2e"))
print(format(0.000574,"8.2e"))

结果:

#格式化为百分比%,转换码%可以把一个数字格式化成百分数。n变成100*n%

程序:

print(format(57.467657,"10.2%"))
print(format(12345678.923,"10.2%"))
print(format(0.000574,"8.2%"))

结果:

#3.6.4_调整格式  #一个数的格式是默认向右边对齐的,<放在格式说明符里面得到的字符串是以指定的宽度向左对齐的。

程序:

print(format(57.467657,"10.2f"))
print(format(57.467657,"<10.2f"))

结果:

#3.6.5 格式化整数

# "d"格式化十进制整数、"x"十六进制整数、"0"八进制整数、"b"二进制整数 # 16进制0123456789ABCEDF代表的就是0-15

程序:

print(format(59832,"<10x"))  

结果:e9b8  

 #3.6.5 格式化整数

程序:

print(format(59832,"10d"))
print(format(59832,"<10d"))
print(format(59832,"10x"))
print(format(59832,"<10x"))

结果:

 

注意:格式化说明符,并不是把它格式化了,而是把格式改成指定的格式。d s o b -- 10 、16、8、2 进制 。

 

#3.6.6

格式化字符串

转换码s可以字符串格式化成一个指定宽度的字符串。#指定长度和对齐

程序 :

print(format('welcome to python',"20s"))
print(format("wlcome to python","<20s")) #左对齐
print(format("welcome to python",">20s"))

结果:

#3.7 --绘制各种图形。

 程序:

import turtle #加载画图工具
turtle.pensize(3) #设置画笔的粗细
turtle.penup() #把画笔提起来
turtle.goto(-200,-50) #把笔移动到(-100,-50)的位置,当作初始点
turtle.pendown() #放写画笔
turtle.circle(40,steps=3) #绘制一个三角形

turtle.penup() #拿起画笔
turtle.goto(-100,-50)
turtle.pendown()
turtle.circle(40,steps=4)

turtle.penup()
turtle.goto(0,-50)
turtle.pendown()
turtle.circle(40,steps=5)

turtle.penup()
turtle.goto(100,-50)
turtle.pendown()
turtle.circle(40,steps=6)

turtle.penup()
turtle.goto(200,-50)
turtle.pendown()
turtle.circle(40)

turtle.done()

结果:

 

#3.8 绘制带颜色和带文字的图形

程序:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import turtle
turtle.pensize(3)
turtle.penup()
turtle.goto(-200,-50)
turtle.pendown()
turtle.begin_fill() #调用begin_fii()来告诉python绘制一个填充颜色的图形。
turtle.color("red") #设置填充的颜色
turtle.circle(40,steps=3) #设置填充颜色的图形
turtle.end_fill() #完成图形颜色的填充

turtle.penup()
turtle.goto(-100,-50)
turtle.pendown()
turtle.begin_fill()
turtle.color("blue")
turtle.circle(40,steps=40)
turtle.end_fill()

turtle.penup()
turtle.goto(200,-50)
turtle.pendown()
turtle.begin_fill()
turtle.color("purple")
turtle.circle(40)
turtle.end_fill()

turtle.color("green") #设置颜色是绿色
turtle.penup() #画笔拿起
turtle.goto(-100,50)
turtle.pendown()
turtle.write("Cool Colorful Shapes",font=("times",18,"bold"))
#画笔填充字符串,设置字体为times,大小为18,粗体
turtle.hideturtle()
turtle.done

结果

 

 

 

转载于:https://www.cnblogs.com/qiyuanjiejie/p/9575872.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值