火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

高一技术 | 信息技术 | 第四次课

作者: 作者的头像   huolong , 时间:2025-07-10 08:48:38 , 所有人可见, 阅读  12

求圆周率:2185. 【例4.11】计算圆周率

复习如何导入模块中的函数。

from math import sqrt
f = 0

for i in range(1,10000+1):
    f += 1/(i*i);

print( '%.4f' %  sqrt(6 * f) )

求阶乘:2177. 练4.4 求阶乘n!的值

复习for循环

n = int(input())

s = 1
for i in range(1,n+1):
    s *= i

print(s)

猜数字:2184. 【例4.10】猜数游戏

while循环,用变量来控制循环的结束 或者用break

key = int(input())

Flag = True

while Flag:
    val = int(input())
    if val > key :
        print("偏大")
    elif val < key :
        print("偏小")
    else:
        print("正确")
        Flag = False #break

求最大公约数:2187. 练4.8 求最大公约数

学习sqlit()函数,以及辗转相减法 和 辗转相除

###辗转相减
s = input()
a, b = s.split(' ') # a='4' b='6'

a, b = int(a) , int(b)

while a != b:
    if a > b:
        a = a - b
    else:
        b = b - a
print(a)

###辗转相除法
s = input()
a, b = s.split(' ') # a='4' b='6'
a, b = int(a) , int(b)
while a and b:
    r = a % b #求余数
    a = b #移项
    b = r

print(a)


字符串切片学习

'''
字符串的切片基于正向和反向索引来进行截取字符串
三种方式:
s = "huolong"
正索引 0 1 2 3 4 5 6
负索引 -7 -6 -5 -4 -3 -2 -1
1、s[起始索引(闭) : 结束索引(开) : 步长] #如果步长为1,则可以省略,如果起始没写默认从0开始,如果结束没写默认从字符串结尾结束

'''

s = "huolong"
print(s[0:3]) #huo 步长省略默认为1
print(s[0:3:1]) #huo
print(s[:3:1]) #huo 起点省略默认为0
print(s[-5:-2:1]) #olo 用反向索引来进行正向截取

print(s[-2:-5:-1]) #nol 用反向索引 并且是逆向截取

print(s[::]) #huolong
print(s[::-1]) #gnolouh
print(s[2:-2]) #olo  省略了步长 默认为1 s[2:-2:1]

print(s[1:5:2]) #ul

字符串常见函数

s = "huolonolog"

print(s.find("olo")) #从左边找第一次出现的位置 结果2 不会修改原字符串
print(s.rfind("olo")) #从右边开始找第一次出现的位置 结果6 不会修改原字符串

print(len(s)) #获取s的长度 结果是 10 不会修改原字符串

print(s.count("olo")) #统计olo这个字符串共出现了几次 结果2 当然还可以统计单词出现次数 不会修改原字符串

print(s.replace('olo', 'www')) #把所有olo都替换成www 结果是huwwwnwwwg 不会修改原字符串

print(s.split('olo'))#用olo来进行切割字符串s,结果为['hu', 'n', 'g'] 不会修改原字符串

print(s.startswith("huo"))#判断字符串是否以huo开头 结果为True 不会修改原字符串
print(s.endswith("long"))#判断字符串是否以long结尾 结果为False 不会修改原字符串

print("aaa\nbbb") #其中\n代表换行

列表

li = [10, 10.5, 'A'] #列表
print(li[0]) #输出10 中括号[0]表示第一个元素 注意计算机索引从0开始,人类是从1开始
ar = [10, 20, 30, 50] #列表,如果存放的是同一类型,那么我们一般称为数组,但是数组先分配再使用

arr1 = [0] * 5 #数组的初始化,结果是[0, 0, 0, 0, 0]
print(arr1)#结果是[0, 0, 0, 0, 0]

for循环版本的:

fruits = ['apple','banana','orange'] 
for fruit in fruits: #注意它不需要range,因为range的结果还是一个列表
    print(fruit)

while循环版本的:

fruits = ['apple','banana','orange']
index = 0
length = len(fruits)
while index < length:
  fruit = fruits[index]
  print(fruit)
  index += 1

嵌套列表

test_list = [1,2,3,['a','b','c']]
for temp in test_list:
    print(temp)

列表相加:列表相加,相当于把后面一个列表的数据追加到第一个列表后面。

a = [1,2,3]
b = [4,5,6]
a.extend(b) #把b扩充到a里  a的值受到影响
c = a + b #c的值是 [1,2,3,4,5,6] a和b不受影响 
print(a) # a.entend(b)

列表的切片操作:跟字符串中的切片操作是一样的。

练习题:2241. 练7.10 整理药名

n = int(input())
for i in range(n):#处理若干行 由上面的整数n来决定
    s = input() #读入一个药名名
    #先全部转成小写 用s.lower()
    s = s.lower()
    if  'a' <= s[0] <= 'z':
        print(s[0].upper() + s[1:])
    else:
        print(s)

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码