python入门实践课_python入门(第1节实践课)

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

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 版权协议,转载请附上原文出处链接及本声明。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值