Bohrium
robot
新建

空间站广场

论文
Notebooks
比赛
课程
Apps
我的主页
我的Notebooks
我的论文库
我的足迹

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
未命名
python
python
Bohr8f3e8d
发布于 2023-10-11
推荐镜像 :Basic Image:bohrium-notebook:2023-04-07
推荐机型 :c2_m4_cpu
Python习题

©️ Copyright 2023 @ Authors
作者:斯坦福大厨 📨 何仁桀 📨
日期:2023-08-09
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 Bohrium-notebook:2023-04-07 镜像及 c2_m4_cpu 节点配置,稍等片刻即可运行。

恭喜您已经发现了这份神奇的计算材料学课件!这份课件是我在熬夜吃掉不计其数的披萨和咖啡后创作出来的,配套的教材是由单斌、陈征征、陈蓉合著的《计算材料学--从算法原理到代码实现》。学习资料合集您可以在这个网址找到:www.materialssimulation.com/book,您也可以跟着up主无人问津晦涩难懂的B站视频一起进行学习。希望它能帮您在计算材料学的道路上摔得不那么痛。

就像您尊重那些一边烘焙披萨一边写代码的大厨一样,当您使用这份课件时,请:

  • 记得告诉大家这份课件是斯坦福大厨写的,并且他在华中科技大学微纳中心工作
  • 别用它去赚大钱,这个课件是用来学习的,不是用来买披萨的
  • 保持开放共享的精神

如果你有关于计算材料学的想法,或者你只是想和我讨论最好吃的披萨口味,欢迎通过邮件 bshan@mail.hust.edu.cn 联系我。

代码
文本

Python习题

代码
文本
  1. 给定正整数n,编写程序生成以i为键,i*i为值的字典,i为1到n之间的整数(都包括在内)。打印该字典。

输入:8

输出:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}

代码
文本
[9]
def solution(n: int):
dict1 = {}
## 作答区域 ↓
i = 1
while(i <= a):
dict1[i] = i**2
i += 1
## 作答区域 ↑
print(dict1)
return dict1
代码
文本
[11]
a = int(input('Type a number:'))
print(solution(a))
Type a number: 8
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}
代码
文本
  1. 给定正整数n,输出斐波那契数列的前n项,斐波那契数列指的是1,1,2,3,5,8,13……

输入:10

输出:1,1,2,3,5,8,13,21,34,55

代码
文本
[13]
def solution(n: int):
fib = []
## 作答区域 ↓
if a == 1:
return [1]
elif a == 2:
return [1,1]
else:
fib = [1,1]
for i in range(2,a):
fib.append(fib[i-1] + fib[i-2])
return fib[0:]
## 作答区域 ↑
代码
文本
[14]
a=int(input('Type a number:'))
print(solution(a))
Type a number: 10
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
代码
文本
  1. 给定正整数n,输出n的因式分解。

输入:一个小于1000的正整数,例如90

输出:90=2*3*3*5

代码
文本
[15]
def solution(n: int):
assert 0 < n < 1000
## 作答区域 ↓
factor = []
if n==1:
factor = [1]
else:
for m in range(2, n + 1):
while n % m == 0:
if m == n:
factor.append(m)
break
else:
factor.append(m)
n /= m
return factor
## 作答区域 ↑
代码
文本
[16]
n=int(input('Type a number:'))
print("{}=".format(n),end='')
for index in range(len(solution(n))):
print("{}*".format(solution(n)[index]),end='')
Type a number: 90
90=2*3*3*5*
代码
文本
  1. 给定一个只包含字符串的数组strs,编写函数rev_strs(strs),逆序输出这个数组,同时字符串也反转。

输入:strs = ['abc', 'apple', 'pen']

输出:['nep', 'elppa', 'cba']

代码
文本
[2]
def rev_strs(strs: list[str]) -> list[str]:
strs1 = []
## 作答区域 ↓
for i in range(len(strs)):
s = strs[i][::-1]
strs1.append(s)
strs1.reverse()
## 作答区域 ↑
return strs1
  Cell In[6], line 1
    def rev_strs(str):
                     ^
SyntaxError: invalid character in identifier
代码
文本
[3]
strs = ['abc', 'apple', 'pen']
print(rev_strs(strs))
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[3], line 2
      1 strs = ['abc', 'apple', 'pen']
----> 2 print(rev_strs(strs))

NameError: name 'rev_strs' is not defined
代码
文本
  1. (1) 使用numpy创建一个5*5的数组,数组的元素为随机的0~100(左闭右开)的整数值,打印该数组。

    (2) 修改该数组,使小于30的元素设为30,大于70的元素设为70,打印该数组。

输入:[无]

输出:两个符合题目要求的5*5数组

代码
文本
[11]
import numpy as np

## 作答区域 ↓
a = np.random.randint(0,100,(5,5))
print(a)
b = np.clip(a,a_min = 30,a_max = 70)
print(b)
## 作答区域 ↑
[[65 11 39 35 74]
 [35 74 10 46 40]
 [ 6 65 75 23 15]
 [94 10 52 42 52]
 [48 42 21 60 70]]
[[65 30 39 35 70]
 [35 70 30 46 40]
 [30 65 70 30 30]
 [70 30 52 42 52]
 [48 42 30 60 70]]
代码
文本
[ ]

代码
文本
python
python
点个赞吧
推荐阅读
公开
Python与科学计算(上)
python分子动力学计算材料学华中科技大学单斌
python分子动力学计算材料学华中科技大学单斌
stanfordbshan
发布于 2023-09-01
48 赞53 转存文件
公开
Python与科学计算(上)副本
python分子动力学计算材料学华中科技大学单斌
python分子动力学计算材料学华中科技大学单斌
in莺
更新于 2024-07-27