IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python实验及注意点总结 -> 正文阅读

[Python知识库]Python实验及注意点总结

第一次上机

实验一

# 随机生成两个小于100的整数,打印其中一个数的数据类型和存储地址, 求这两个数的和、差、积、商、幂运算.
import random

x = random.randint(1, 100)
y = random.randint(1, 100)

# print(x)
# print(y)
print("这两个随机数是:%d,%d" % (x, y))  # 输出这两个数

# print(type(x))
print("x的类型:%s" % (type(x)))    # 输出x的类型

# print(id(x))
print("x的地址:%d" % (id(x)))      # 输出x的地址

# print(x+y)
sum = x + y
print("两数之和为:%d" % (sum))

# print(x-y)
dif = x - y
print("两个数之差:%d" % (dif))

# print(x*y)
pro = x * y
print("两个数之积:%d" % (pro))

# print(x/y)
dea = x / y
print("两个数之商:%d" % (dea))

# print(x/y)
dea = x / y
print("两个数之商:%d" % (dea))

# print(x**y)
pow = x ** y
print("两个数之幂:%d" % (pow))

1.print()输出格式

print("这两个随机数是:%d,%d" % (x, y))  # 输出这两个数
print("%d和%d的最大公约数为:%d" % (x, y, n))

print("x的类型:%s" % (type(x)))   

# a为列表
print(a)

print("最大值为:", max(a))

ave = sum(a)/len(a)         # 求列表所有元素平均值
print("平均值为:", ave)

2.幂运算

pow =x**y

实验二

# 2、编程函数,输入两个数,求最大公约数和最小公倍数
x = int(input("请输入第一个整数:"))    # 在input前加上输入值的数据类型
y = int(input("请输入另一个整数:"))
m = []     # 建立空列表
# 比较两个输入值的大小
if x > y:
    smaller = y
else:
    smaller = x

for i in range(1, smaller+1):   # 最大公约数的值不能超过两数中小的那一个
    if(x % i == 0) and (y % i == 0):
        m.append(i)
    continue
n = m[-1]  # 取m中的最后一个元素
print("%d和%d的最大公约数为:%d" % (x, y, n))
print("%d和%d的最小公倍数为:%d" % (x, y, x*y//n))

1.input()前加上输入值的数据类型

x = int(input("请输入第一个整数:")) 

2.最大公约数&最小公约数

** xy=nm **
n为最大公约数
m为最小公倍数数
比较两数大小,建立空列表,最大公约数的值不能超过两数中小的那一个
最大公约数:两数都可整除,整除的值移入新表,选最后一个元素
求出最大公约数后,用xy=nm求出最小公倍数

实验三

# 3、随机生成一个列表a,10个元素。打乱顺序,然后求a的最大值,最小值,和,平均值,显示从大到小的顺序。
import random
# a=[random.randint(1,100) for i in range(10)]
a = []
for i in range(1, 11):
    b = random.randint(1, 100)
    a.append(b)             # append()用于在列表的末尾追加元素:a列表中添加b中生成的元素
print(a)

random.shuffle(a)    # 随机打乱顺序
print(a)
print("最大值为:", max(a))
print("最小值为:", min(a))
print("和为:", sum(a))
ave = sum(a)/len(a)         # 求列表所有元素平均值
print("平均值为:", ave)

a.sort(reverse=True)   # 逆序排序
print(a)

1.逆序、顺序排序

a.sort(reverse=True)   # 逆序排序
a.sort(x)   # 顺序排序,x为列表

2.求列表中所有元素的平均值

ave = sum(a)/len(a)         # 求列表所有元素平均值
print("平均值为:", ave)

3.建立元素个数确定的随机列表

a = []                           # 建立空列表
for i in range(1, 11):
    b = random.randint(1, 100)
    a.append(b)             # append()用于在列表的末尾追加元素:a列表中添加b中生成的元素

第二次上机

实验一

# 1、编写程序,用户输入一个四位整数,输出其百位千位和个位数字之和。
x = int(input("请输入一个四位整数:"))

m = x // 1000   # 千位数字
print(m)
n = (x % 1000)//100   # 百位数字
print(n)
z = x % 10   # 个位数字
print(z)
sum = m + n + z
print("千位、百位、个位数字之和为:%d " % (sum))

实验二

# 2、生成包括1000个0到100之间的随机整数,统计每个元素的出现次数,输出重复次数最多的元素。(提示:可能存在重复数据。)
import random
a = []
for i in range(1000):
    b = random.randint(0, 100)
    a.append(b)

for i in a:
    from collections import Counter
cs = Counter(a).most_common(1)
print(cs)

1.统计每个元素出现的次数,求最多次数的值

for i in a:
from collections import Counter
cs = Counter(a).most_common(1)

实验三

# 3、请输入一个字符串,再输入要删除的某个字符 ,大小写不用区分,将字符串中出现的指定字符全部删除。
a_str = str(input("请输入一个字符串: "))
b_c = str(input("请输入一个需要删除的字符: "))
c =  ' '
for i in a_str:
    if i.lower() != b_c.lower():
        c += i

print(c)

1.删除指定字符

当两个小写值不相等时,把不相等的值移到新列表中

第三次上机

实验一

# 产生一个 1-26 的数字列表A的代码是:
A = [i for i in range(1, 27)]
print(A)
# 产生一个“ A”- “Z”的字母列表B是:
B = [chr(i) for i in range(65, 91)]
print(B)
# 请生成一个字典mydict,使得数字与字符形成对应,如1):1:”A”, 2: ”B”……26:” Z”
mydict = dict(zip(A, B))
print(mydict)
# 2)已知 ListA=[1,2,3,4,5], ListB= [ ‘one ’, ’two ’, ’three ’, ’four ’, ’five ’],
# 请把两个列表合并成字典
ListA = [i for i in range(1, 6)]
ListB =['one', 'two', 'three', 'four', 'five']
thisdict =dict(zip(ListA, ListB))
print(thisdict)

1. 产生一个“ A”- “Z”的字母列表B是:

B = [chr(i) for i in range(65, 91)]

2.产生一个 1-26 的数字列表A的代码是:

A = [i for i in range(1, 27)]

3.mydict = dict(zip(A, B))

实验二

# 2. 使用字典来创建程序,提示用户输入电话号码,并用英文单词形式显示数字。
# 例如:输入 521 显示为“five two one ”.
num = [i for i in range(0, 10)]
num2 = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
numdict = dict(zip(num, num2))
hua = input("请输入一个电话号码:")
for i in hua:
    print(numdict[int(i)], end=' ')

由键找值:for i in hua: print(numdict[int(i)], end=’ ')

实验三

# 3. 莫尔斯电码采用了短脉冲和长脉冲 (分别为点和点划线) 来编码字母和数字。 例如,字母“A”是点划线,“B”是点划线点点。如文件 Mos.txt 文件所示。
# A .- B ... C -.-. D -.. E . F ..-. G --. H .... I ..
# J .--- K -.- L .-.. M -- N -. O --- P .--.
# Q --.- R .-. S ... T - U ..- V ...- W .--
# X -..- Y -.-- Z --..
# 1)创建字典,将字符映射到莫尔斯电码。
# 2)输入一段英文,翻译成莫尔斯电文。

A = [chr(i) for i in range(65, 91)]
B = ['.-','...','-.-.','-..','.','..-.','--.','....','..','.---','-.- ','.-..','--','-.','---','.--.','--.-','.-.','...',' - ','..- ','...-','.--','-..-','-.--','--..']
mydict = dict(zip(A, B))
print(mydict)

words = input("请输入一段英文: ").strip()
for i in words:
    print(mydict[i], end=' ')

第四次上机

实验一

# 1. 通过 Input()函数任意输入三条边长,经过简单的计算后,判断三条边长能否构成三角 形,
# 并确定是什么类型的三角形,如(等边,等腰,一般三角形)。
x = float(input("请输入一条边长:"))
y = float(input("请输入一条边长:"))
z = float(input("请输入一条边长:"))

if x + y > z and x - y < z:
    print("这三条边可以构成三角形")
    if x == y and y ==z:
        print("该三角形为等边三角形")
    elif x == y or y == z or x == z:
        print("该三角形为等腰三角形")
    else:
        print("该三角形为一般三角形")
else:
    print("这三边不能构成三角形")

实验二

# 2. 密码登录程序。要求:建立一个登录窗口 ,要求输入帐号和密码。
# 设定用户名为 ”zhangshan”,密码为 “Python123”;
# 若用户名正确, 密码正确,则显示 “Zhangshan先生,欢迎你 ! ”;
# 如果用户名错误,则显示“用户名错误,请重新输入 ! ”;
# 若密码不正确 ,显示“对不起 ,密码错误 ,无法登录! ”。
x = str(input("请输入账号: "))
y = str(input("请输入密码: "))
if x == 'zhangshan' and y == 'Python123':
    print("Zhangshan先生,欢迎你 ! ")
elif x != 'zhangshan' and y == 'Python123':
    print("用户名错误,请重新输入 ! ")
elif x == 'zhangshan' and y != 'Python123':
    print("对不起 ,密码错误 ,无法登录!")

实验三

# 4. 计算一元二次方程 ax2+bx+c 的根是公式。因为负数的平方根是虚的,所以可以使用平方根里面的表达式(称为差别式)
# 先进行判别,检查根型。
# 如果判别式是负数,根是虚的。如果判别式是零,只有一个根;如果判别式是正的,
# 有两个根。
# 写 一个程序,使用二次方根式得到实根,即忽略虚根。使用判别式确定有一个根或两个根, 然后显示出答案。
a = int(input("请输入a的值: "))
b = int(input("请输入b的值: "))
c = int(input("请输入c的值: "))
if b*b-4*a*c > 0:
    print("有两个实根")
elif b*b-4*a*c == 0:
    print("有一个实根")
elif b*b-4*a*c < 0:
    print("没有实根")

第五次上机

实验一

# 1.编写程序,找出 7 的倍数中十位数为 2 的所有 3 位数。
for x in range(99, 1000):
    if x % 7 == 0:
        a = (x // 10) % 10
        if a == 2:
           print(x)


for i in range(99, 1000):
    if i % 7 == 0:
        if (i % 100) // 10 == 2:
            print(i)

x % 7 == 0:整除,无余数

实验二

# 编写程序用 Print 语句输出 2000 年至 2500 年间的所有闰年, 要求每行输出 8 个。
i = 0
for x in range(2000, 2501):
    if(x % 400 == 0) or (x % 4 == 0 and x % 100 != 0):
        # 闰年①整百年份必须是400的倍数②非整百数必须是4的倍数
        print(x, end=" ")
        i += 1
        if(i % 8 == 0):
            print("\n")

闰年计算:是400的倍数 或 是4的倍数不是100的倍数

固定一行个数

    **i += 1
      if(i % 8 == 0):
        print("\n")**

实验三

# 编写程序解决爱因斯坦台阶问题:有人走一台阶,若以每步走两级则最后剩下一级
# 若每步走三级则剩两级;若每步走四级则剩三级;若每步走五级则剩四级
# 若每步走六级则剩五级;若每步走七级则刚好不剩。问台阶至少共有多少级?

x = 7
while True:
    x = x+7
    if x % 7 == 0 and x % 6 == 5 and x % 5 == 4 and x % 4 == 3 and x % 3 == 2 and x % 2 == 1:
            break
print(x)

可以看出是7的倍数,只需要在7的倍数中寻找

实验四

# 我国有 13 亿人口,如果按人口年增长 0.8%计算,多少年后将达到 26 亿
x = 13
i = 0
while x <= 26:
    x = x*1.008
    i += 1
print("还需要", i, "年")

使用while循环,循环1即i+1

第六次上机

实验一

# 编写一函数 Fabonacci(n),其中参数 n 代表第 n 次的迭代。
def Fabonacci(n):
    if n == 0:
        return 0

    elif n == 1 or n == 2:
        return 1

    else:
        n = Fabonacci(n-1) + Fabonacci(n-2)
        return n


def main():
    n = int(input("输入n值:"))
    print(Fabonacci(n))


main()

实验二

# 编写一函数 Prime(n),对于已知正整数 n,判断该数是否为素数,如果是素数,返回 True,否则返回 False
def Prime(n):
    for i in range(2, n):
        if n % i == 0:
            return False
    return True


def main():
    n = int(input("请输入一个正整数:"))
    print(Prime(n))


main()

素数判断计算,在2 -(n-1)中逐一找能整除的数

使用range(),列出所有值,逐一试
for i in range(2, n):
if n % i == 0:
return False

实验三

# 利用上题中判断素数的函数,编写程序找出 1~100 之间的所有孪生素数(若两个素数之差为 2,则 这两个素数就是一对孪生素数) 。
# 例如: 3 和 5、5 和 7、11和 13 等都是孪生素数
def Prime(n):
    for i in range(2, n):
        if n % i == 0:
            return 0
    return 1


def main():
    for n in range(1, 100):
        if Prime(n) == 1 and Prime(n+2) == 1:
            print(n, n+2)


main()
**for n in range(1, 100):
    if Prime(n) == 1 and Prime(n+2) == 1:
        print(n, n+2)**

第七次上机

实验一

# 编写一函数,将摄氏温度与华氏温度互转。(公式: C*1.8+32=F)
def main():
    c = float(input("请输入摄氏温度:"))
    f = c * 1.8 + 32
    print("华氏温度为:", f)


main()

实验二

# 堆里有 16 颗豆子,有两个玩家(假设一个玩家是电脑) 。每个玩家都可以从堆中的 16 颗豆子中取出 1 颗, 2 颗或者 3 颗豆子。
# 每个玩家在每回合中必须从堆中取出一定数目的豆子。玩家轮流取出豆子,取到最后 一颗豆子的玩家是输家。
# 思路: 写一个人取豆子的函数 ; 帮电脑设计一个算法,实现取豆子的函数 ; 在主程序中进行输流调用,谁 最后拿到 1 粒豆子谁就输。
import random
def human(n):
    print('-' * 30)
    while 1:
        guess_human = int(input("人玩家取豆数为: "))     # 人类玩家取豆数量
        if 1 <= guess_human <= 3:      # 判断数量正确与否
            break
        else:                          # 取的数量有误
            print("取豆数量超出范围")
    print("剩余豆子数量为:", n - guess_human)    # 剩余豆数量
    return (n - guess_human)


def computer(n):
    print('-' * 30)
    guess_computer = random.randint(1, 3)
    print("机器玩家取豆数为: ", guess_computer)
    print("剩余豆子数量为:", (n - guess_computer))        # 剩余豆数量
    return (n - guess_computer)


def main():
    computer_win = False             # 预先设定
    total = 16                       # 豆子总数
    print("豆子总量为", total)
    print("每次取豆数需为1-3颗豆子。")
    while 1:
        total = human(total)
        if total <= 0:
            computer_win = False
            break
        total = computer(total)
        if total == 0:
            computer_win = True
            break
    if computer_win:
        print("人类玩家胜利!")
    else:
        print("电脑玩家胜利!")


main()

第二次作业

实验一

# 假设有一段英文,其中有单词中间的字母i误写为I,请编写程序进行纠正
s = input('请输入一段英文:')
list1 = s.split() # 分割这一段英文
result = []     # 存放最后结果的空列表
print(list1)    # 打印用户输入的这一段英文
for i in range(len(list1)):
    if len(list1[i]) != 1:   # 列表list1中的第i个元素是单词时
        result.append(list1[i])
    else:                   # 列表list1中的第i个元素不是单词时
        if list1[i] == 'i':
            result.append('I')
        else:
            result.append(list1[i])
print(result)
print(' '.join(result)) # 将列表result中的元素用空格连接起来

实验二

# 有一段英文文本,其中有单词连续重复了2次,编写程序检查重复的单词并只保留一个,例如:文本内容为“This is is a desk.”,程序输出为“This is a desk.”。
l = []
s = "This is is a desk."
for i in s.split(" "):
    if i not in l:
        l.append(i)

result = " ".join(l)
print(result)

实验三

4.编写程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词。

# 编写程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词。
s = input('请输入一段英文:')
list2 = s.split()  # 分割这一段英文
result = []     # 存放最后结果的空列表
for i in list2:
    if len(i) == 3:  # 如果单词的长度为3  输出
        print(i)
    else:
        print('')

第一次作业

实验一

# 10.编写程序,用户输入一个三位以上的整数,输入其百位以上的数字。例如用户输入1234,则程序输出12(使用整数运算)
s = input('请输入一段英文:')
list1 = s.split() # 分割这一段英文
result = []     # 存放最后结果的空列表
print(list1)    # 打印用户输入的这一段英文
for i in range(len(list1)):
    if len(list1[i]) != 1:   # 列表list1中的第i个元素是单词时
        result.append(list1[i])
    else:                   # 列表list1中的第i个元素不是单词时
        if list1[i] == 'i':
            result.append('I')
        else:
            result.append(list1[i])
print(result)
print(' '.join(result)) # 将列表result中的元素用空格连接起来

10.编写程序,用户输入一个三位以上的整数,输入其百位以上的数字。例如用户输入1

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-06-23 00:52:48  更:2022-06-23 00:53:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 13:25:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码