mooc上python课程哪个好_[moocpython课程]基本数据类型,MoocPython

基本数据类型

1.数值型数据:

实例之天天向上1.0:

每天进步的力量:

每天进步1%o,一年下来进步多少呢

每天退步1%o,一年下来退步多少呢

给出代码:

dayfactor = 0.001

up = pow(1+dayfactor,356)

down = pow(1-dayfactor,365)

print('天天向上最终成为原来的{:.2f}倍,天天向下最终成为原来的{:.2f}倍'.format(up,down))

结果:天天向上最终成为原来的1.43倍,天天向下最终成为原来的0.69倍

这样我们可以通过修改dayfactor而轻松计算不同进步幅度的最终进步/退步结果

例如0.1倍时

天天向上最终成为原来的34.55倍,天天向下最终成为原来的0.03倍

实例之天天向上2.0:

工作日的力量:

入过我们加入一个新的条件,即,只有工作日时进步,周六日会退步

dayup = 1.0

for i in range(365):

if i%7 in [6,0]:

dayup = dayup*(1-dayfactor)

else:

dayup = dayup * (1 + dayfactor)

print('最终变为原来的{:.2f}倍'.format(dayup))

结果为:最终变为原来的4.63倍

实例之天天向上3.0:

如果我们采取工作日向上的进步方式,且周末退步1%,那么我们工作日要进步多少才能和天天向上进步1%相当呢?

代码实现:

def dayUp(dayfactor):

dayup = 1.0

for i in range(365):

if i%7 in [6,0]:

dayup = dayup*(1-0.01)

else:

dayup = dayup * (1 + dayfactor)

return dayup

dayfactor = 0.01

while dayUp(dayfactor) < 37.38:

dayfactor += 0.01

print('每天进步{},工作日进步力量才能追上天天向上进步0.01力量'.format(dayfactor))

代码解析:

我们首先应该将2.0中的工作日进步力量封装成一个函数,以工作日进步的幅度为参数,这样时为了方便这段代码,对于不同进步幅度的复用。封装完成后,我们可以用最传统的蛮力法对不同的进步幅度进行试错,每次进步幅度上涨0.01,这样蛮力计算,直到追赶上天天向上进步0.1的结果。

2.字符串型数据:

字符串的4种表示方法:

‘’,"",’’’’’’,

字符串的8个处理方法:

# 1.字符全部大/小写

print('ABCDEFG'.lower())

print('abcdefG'.upper())

# 2.字符串根据参数分割

print('a,b,c,d,e,f,g'.split(','))

# 3.字符串根据参数计数

print('an apple a day'.count('a'))

# 4.字符替换内容

print('python'.replace('n','123.io'))

# 5.字符串根据width居中,fillchar可选,str.center(width,[fillchar])

print('python'.center(20,'$'))

# 6.去掉字符串中的某些字符 str.strip('chars')

print('= python='.strip('= pn'))

# 7.为字符串添加分隔符, 'tip'.jion(str)

print('^'.join('123456'))

# 8.字符串格式化.format()

print('{}:计算机{}的CPU占用率为:{}%'.format('2020-2-13','C',45))

{:10}表示默认宽度为10,默认情况左对齐

{:=^20}表示宽度20,居中对齐,其余用=填充

{:*>20}表示宽度20,右对齐,其余用*填充

{:<20}表示宽度20,左对齐

转义符 \

作用方便’字符的输出

字符串操作符

+代表拼接

*代表重复输出

eval() 字符串转化成数值

str = '一二三四五六日'

num = eval(input())

print("星期"+weekstr[num-1])

字符串的切片:

python采用9801编码

我们若想得到某个特殊字符的编码,可以用ord(‘♉’)函数

例如我们想知道 金牛座符号的 9801 编码

print(ord('♉'))

得到输出:9801

例如我们想得到12星座的字符

for i in range(12):

print(chr(9801+i),end=' ')

得到输出:♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ♔

3.Time库的使用

# Time库的使用

import time

# 1.获取计算机内部的时间值,一个浮点数(1970-1-1 00:00 到现在的时间)

print(time.time())

# 2.返回当前时间,以易读方式表示

print(time.ctime())

# 3.返回一个time结构体,方便提取年/月/日/时间

print(time.gmtime())

# 4.让time结构体,按指定格式生成字符串

t = time.gmtime()

print(time.strftime('%Y-%m-%d %H:%M:%S',t))

# 6.计时器perfcounter()和休眠函数sleep()

start = time.perf_counter()

time.sleep(3)

end = time.perf_counter()

print('开始时间:',start)

print('结束时间:',end)

print(end-start)

实例:模拟输出一个进度条1.0

------执行开始------

0 %[-> ]%

10 %[*-> ]%

20 %[**-> ]%

30 %[***-> ]%

40 %[****-> ]%

50 %[*****-> ]%

60 %[******-> ]%

70 %[*******-> ]%

80 %[********-> ]%

90 %[*********->]%

100%[**********->]%

------执行结束------

代码实现:

import time

scale = 10

print('------执行开始------')

for i in range(scale+1):

a = '*'*i

b = ' '*(scale-i-1)

print('{:^3.0f}%[{}->{}]%'.format(10*i,a,b))

print('------执行结束------')

实例:模拟输出一个进度条2.0

效果:(单行动态刷新)

100%[**********->]%

代码实现

import time

scale = 10

for i in range(scale+1):

a = '*'*i

b = ' '*(scale-i)

print('\r{:^3.0f}%[{}->{}]%'.format(10*i,a,b),end='')

time.sleep(0.5)

区别:在输出的字符串中包含的’\r’ 的含义为,每次将光标移动至行首,配合end=’'不换行,达到刷新单行的效果

实例:模拟输出一个进度条3.0

改进:加上一个时间

-----------------------执行开始-----------------------

100%[**************************************************->]5.03S

-----------------------执行结束-----------------------

import time

scale = 50

start = time.perf_counter()

print('\n','执行开始'.center(scale,'-'))

for i in range(scale+1):

a = '*'*i

b = ' '*(scale-i)

c = (i/scale)*100

per = time.perf_counter() - start

print('\r{:^3.0f}%[{}->{}]{:.2f}S'.format(c,a,b,per),end='')

time.sleep(0.1)

print('\n','执行结束'.center(scale,'-'))

4.测试实例

1.

平方根格式化

描述

获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输出结果采用宽度30个字符、右对齐输出、多余字符采用加号(+)填充。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

如果结果超过30个字符,则以结果宽度为准。

输入

输出

示例 1

10

+++++++++++++++++++++++++3.162

代码:

x = eval(input())

sqrt = pow(x,1/2)

print('{:+>30.3f}'.format(sqrt))

代码解析:首先要注意到input函数接收的输入,是字符串型的,我们使用eval函数将输入转化为数值型数据,然后用pow函数计算其平方根,最后在输出中用.format函数进行字符串的格式化。

2.字符串分段组合

描述

获得输入的一个字符串s,以字符减号(-)分割s,将其中首尾两段用加号(+)组合后输出。

输入

输出

示例 1

Alice-Bob-Charis-David-Eric-Flurry

Alice+Flurry

代码:

x = input()

list = x.split('-')

print('{}+{}'.format(list[0],list[-1]))

代码解析:首先用input函数接收输入:然后用split函数进行分割,得到分割好的字符串列表,只需要将第一个元素和最后一个元素使用.format函数按照规定格式进行输出就可以了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值