Python【每日一问】26
问:
【基础题】:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
【提高题】:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第 10 次反弹多高?
答:
【基础题】:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
方法1:
import re
def split_func():
tmp_str = input('请输入字符串:')
char_num = 0
dig_num = 0
space_num = 0
other_num = 0
for i in range(len(tmp_str)):
if re.match('[a-zA-Z]', tmp_str[i]):
char_num += 1
elif re.match('\d', tmp_str[i]):
dig_num += 1
elif re.match('\s', tmp_str[i]):
space_num += 1
else:
other_num += 1
print('字符:', char_num)
print('数字:', dig_num)
print('空格:', space_num)
print('其他:', other_num)
split_func()
方法2:
s = input('请输入字符串:')
dic = {'letter': 0, 'integer': 0, 'space': 0, 'other': 0}
for i in s:
if i > 'a' and i < 'z' or i > 'A' and i < 'Z':
dic['letter'] += 1
elif i in '':
dic['integer'] += 1
elif i == ' ':
dic['space'] += 1
else:
dic['other'] += 1
print('统计字符串:', s)
print(dic)
print('------------显示结果2---------------')
for i in dic:
print('%s=' % i, dic[i])
print('------------显示结果3---------------')
for key, value in dic.items():
print('%s=' % key, value)
【提高题】:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第 10 次反弹多高?
方法1:
# 数学方法求总位移
s = 100 + (100 * (1 - 0.5 ** 9)) * 2
print("小球工经过", s, "米")
# 第10次小球弹起高度
def get_height_of_bounce(initial_height):
bounce_off_height = initial_height / 2
while True:
yield bounce_off_height
bounce_off_height = bounce_off_height / 2
number_of_bounce = 10
initial_height = 100
bounce_off_heights = []
bounce_height = get_height_of_bounce(initial_height)
for i in range(number_of_bounce):
bounce_off_heights.append(bounce_height.__next__())
print("每次小球弹起的高度为", bounce_off_heights)
print("第10次弹起高度为", bounce_off_heights[9], "米")
方法2:
def cal_distance(n: int) -> None:
distance = 100
height = distance / 2
for i in range(2, n+1):
distance += 2 * height
height /= 2
print(f"经过{n}次落地后总长{distance}")
print(f"经过{n}次落地后反弹高度{height}")
cal_distance(2)
cal_distance(3)
cal_distance(10)
方法3:
def reboud(n):
height = 100
sum_distance = 100
for i in range(1, n+1):
reboud_height = (0.5 ** i) * height
sum_distance += (reboud_height * 2)
if i == n-1:
print("第{}次落地经过的总距离为{}米".format(n, sum_distance))
print("第{}次反弹的高度为{}米".format(n, reboud_height))
reboud(10)
Python【每日一问】26的更多相关文章
- [python每日一练]--0012:敏感词过滤 type2
题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...
- Python 每日一练(5)
引言 Python每日一练又开始啦,今天的专题和Excel有关,主要是实现将txt文本中数据写入到Excel中,说来也巧,今天刚好学校要更新各团支部的人员信息,就借此直接把事情做了 主要对于三种数据类 ...
- Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词
#coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...
- python每日一函数 - divmod数字处理函数
python每日一函数 - divmod数字处理函数 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: ...
- 每日一问:Android 消息机制,我有必要再讲一次!
坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 我 17 年的 面试系列,曾写过一篇名为:Android 面试(五):探 ...
- 每日一问:谈谈 volatile 关键字
这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下. 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了 ...
- 每日一问:讲讲 Java 虚拟机的垃圾回收
昨天我们用比较精简的文字讲了 Java 虚拟机结构,没看过的可以直接从这里查看: 每日一问:你了解 Java 虚拟机结构么? 今天我们必须来看看 Java 虚拟机的垃圾回收算法是怎样的.不过在开始之前 ...
- 每日一问:你了解 Java 虚拟机结构么?
对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...
- 每日一问:LayoutParams 你知道多少?
前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的.我们 ...
- 每日一问:简述 View 的绘制流程
Android 开发中经常需要用一些自定义 View 去满足产品和设计的脑洞,所以 View 的绘制流程至关重要.网上目前有非常多这方面的资料,但最好的方式还是直接跟着源码进行解读,每日一问系列一直追 ...
随机推荐
- 【转载】ArrayList使用LastIndexOf方法查找最后一个符合条件的元素位置
在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,在ArrayList集合中如果需要查找最后一个符合条件的元素所在的位置,可以使用ArrayList集合的LastIndexOf方法, ...
- Windows 获取进程ID
DWORD GetProcessID(const char *ProcessName) { PROCESSENTRY32 pe32; pe32.dwSize = sizeof(PROCESSENTRY ...
- Get SAP Code Page by External Name
CL_ABAP_CODEPAGE - SAP_CODEPAGE 取SAP对应code page内码:
- 【计算机网络】windows修改本机hosts文件
hosts 文件所在的位置 C:/windows/system32/drivers/etc/hosts 修改后不必重启立即生效的方法 命令行下运行: ipconfig /displaydns 显示所有 ...
- ant笔记
目录 ant远程部署 ant的使用,命令! 参考文献: ant+maven一键打包springboot上传服务器发布 判断linux文件.文件夹是否存在 shell中脚本参数传递的两种方式 shell ...
- Nginx 高级配置--关于favicon.ico
Nginx 高级配置--关于favicon.ico 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.浏览器会默认帮咱们访问官网的图标 1>.浏览器访问网站"htt ...
- Linux服务器安全加固
关于对公司网站服务器安全加固的一些想法及思路: 一.修改密码和ssh登录端口,并且尽可能的用密钥对登录,禁止用密码登录(主要针对Linux)二.修改/etc/hosts.allow 设置仅仅允许某几台 ...
- vue-cli3.0结合lib-flexible、px2rem实现移动端适配,完美解决第三方ui库样式变小问题
公司最近做的一个移动端项目从搭框架到前端开发由我独立完成,以前做移动端适配用的媒体查询,这次想用点别的适配方案,然后就采用了vue-cli3.0结合lib-flexible.px2rem实现移动端适配 ...
- 使用ftp搭建yum仓库
此次操作在VMware Workstation虚拟机的CentOS7.5下进行 这里使用两台Linux主机,下表是它们所使用的操作系统以及IP地址. 两台Linux主机所使用的操作系统以及IP地址 操 ...
- java.util.ConcurrentModificationException异常;java.util.ConcurrentModificationException实战
写代码遇到这个问题,很多博客文章都是在反复的强调理论,而没有对应的实例,所以这里从实例出发,后研究理论: 一.错误产生情况 1 .字符型 (1)添加 public static void main(S ...