为了账号安全,请及时绑定邮箱和手机立即绑定

python入门(第1节实践课)

标签:
Python

题目1https://www.jx-ferrotungsten.com

1.1如何写一段程序判断python编译器的版本号


需要掌握知识

ctypes模块

使用该模块前要导入 import ctypes

ctypes.windll.user32.MessageBoxW(0,“正确版本”,‘正确’,0)的理解

功能将字符串对话框的形式展示

(0,a,b,0):四个参数中a表示输出字符串,b表示文本框标题

import sys     #系统模块

import ctypes

a=sys.version   #根据系统模块返回,python相应的版本信息

if a[0:5]=='3.6.7':   #用切片截取版本号,判断并弹出相应的对话框

  ctypes.windll.user32.MessageBoxW(0,"版本正确","正确",0)  

else:

  ctypes.windll.user32.MessageBoxW(0,"版本错误","错误",0)    

1

2

3

4

5

6

7

需要掌握知识

字符串类型的数据可以使用切片获取对应位置的值

1.2 求2009的100次方 第100位到110位这11个数字是多少?其结果一共有多少位?


s=2009**100   #计算出2009**100的结果

s1=str(s)         #由于要测量结果的长度,而int类型并不支持,所以要进行类型的转换

print("2009**100=%d"%s)

print("字符串的长度为%d"%len(s1))

print("第100位到110位这11个数字是%s"%s1[100-1:100-1+11+1:])

#理解切片:s1[100-1:100-1+11+1:]

  100-1 因为切片是从0开始,所以对应位置前移一个

  100-1+11+1  终止位置虽然相隔11个数,但是最后一个数不算,所以对应还要加1

1

2

3

4

5

6

7

8

题目2

2.1 作业题 输入三个人的姓名,倒序排列(*提高部分,用窗口显示)

ctypes.windll.user32.MessageBoxW(0,txt,‘标题’,0)


x=input("请输入三个人的名字,倒序输出")

y=x.split()                #以空格间隔将字符串拆分为字符列表

print(y[2],y[1],y[0])      #y[i]列表y对应位置的元素

import  ctypes

ctypes.windll.user32.MessageBoxW(0,y[2]+' '+y[1]+' '+y[0],"输出结果",0)  #‘ ’目的是将名字字符串分开


1

2

3

4

5

6

2.2 上次作业题 输入三角形两个边和两边的夹角(角度制),求三角形面积(*提高部分,用窗口显示)


需要掌握的知识

eval(s):将字符串类型转换为数值类型

import math

import ctypes

x=input("请输入两边及夹角")

y=x.split()                  #拆分字符串,转换为对应的数值类型

a=eval(y[0])           

b=eval(y[1])   

c=eval(y[2])

o=math.pi*c/180              #转换为弧度

s=0.5*a*b*math.sin(o)    #1/2*a*b*sin(弧度)  面积公式

ctypes.windll.user32.MessageBoxW(0,"面积为%s"%s,"输出窗口",0)

1

2

3

4

5

6

7

8

9

10

题目3

3 试着计算1x2x3…x98x99x100的结果


须知

字符串用法

“我名字是%s,我的成绩%d”%(“张三”,12)

结果:我名字是张三,我的成绩12

s=1

for i in range(1,101):  #循环100累乘,101不计入

    s*=i

print("1*2*3....*98*99*100=%d"%s)


1

2

3

4

5

题目4

4 用蒙特卡罗法求pi的值https://www.jx-ferrotungsten.com


random

1.random.random()产生0-1之间的一个随机数

蒙特卡罗法

进行大量的试验,(x,y)在下面正方形内随机取点,取得点数越多,对应落在园内的点数量和落在正方形点数量之比等于它们的面积之比



import random

k=0

m=input("请输入测试次数,输入值越大,估算越准确")

n=int(m)                   #强制类型转换,input函数接收到的类型是string型

for i in range(n):

    x=random.random()          #以1/4圆为例,取随机0-1的随机数x,y

    y=random.random()

    if x**2+y**2<=1:                #记录圆内的点的数量

        k=k+1   

p=k/n                  #算出对应的点数比

pi=2*2*p            #根据圆的面积反推π

print("π=%f"%pi)

————————————————

版权声明:本文为CSDN博主「国民小跟班」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消