我学Python

实际上我在高二的时候就设想过把Python全通一遍,比如某个暑假搞一搞。

但是由于某种不可抗力的存在,我的学习始终处于初识语法的阶段。

再起征途

这次选修课的误选在某种程度上也算是成了一把鞭子,鼓励我向前走起。

那么就从最基础的开始学起吧!

数据类型和变量

Python的变量是很智能的,其类型由其所赋值的类型决定,随着赋值的改变,其类型也会改变。

当然有的时候Python自动类型转换有的时候会妨碍我们作业,这时候就需要使用强制类型转换

强制类型转换需要用到一些函数: int(),float,and so on

算术运算符

对于Python来说,除是/而整除是//,幂运算则是**,这与c艹不同。

eval()函数

这可以说是上帝赋予的神奇之手了,智能无匹

大概就是可以自动识别自动赋类型赋值,十分灵活但是我懒得在这里阐述了

空语句

pass

与或非

Python里的与或非完全可以直接用and,or来搞,很方便

range语句

1
range(start, stop[, step])

参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

很神奇,但是还算是比较好理解

列表的截取

举个例子
1
list[a🅱️c]

这个a是左端,b是右端,c是步长。

在[a,b]区间从左到右每隔c取值,默认c为1可以省略c参数,若c带负号表示反方向取值,即从右到左。

再举个例子
1
2
3
4
list[-1]            //取最后一个元素
list[:-1]			//取除了最后一个的全部
list[1:]			//从第二个开始取
list[:2]			//取到第二个

这个时候就可以放两道例题了,第一道是货币转换,第二道也是货币转换

按需输出列表中的元素

指针
1
2
a = [0, 1, 2, 3]
print(*a, sep = " ")
for循环
1
2
a = [0, 1, 2, 3]
[print(i,end = " ") for i in a]

奇妙缩进

对于这道题,我在某个关键的地方少了一个关键的Tab,然后输出的结果就疯了

这是我的错误代码,我在第11行不小心把elseif对齐了

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
list1 = []
num = 0
for i in range (1,5) :
    for j in range(1,5) :
        for h in range(1,5) :
            if i != j and j != h and i != h :
                num = i *100 + j * 10 + h
                for k in range(2, num//2+1):
                    if (num % i) == 0:
                        break
                	else :
                        list1.append(num)
print(*list1, sep = " ")
#[print(i,end = " ") for i in list1]

人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

人民币和美元间汇率固定为:1美元 = 6.78人民币。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用¥符号或RMB表示,美元采用$或USD表示,符号和数值之间没有空格。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

注意:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

人民币和美元间符号在转换中要对等,¥和$相互对应,RMB和USD相互对应。

代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
money = input("")
if money[0] in ['R','U']:
    if money[0] == 'R':
        ans = eval(money[3:])/6.78
        print("USD%.2f"%ans)
    else :
        ans = eval(money[3:])*6.78
        print("RMB%.2f"%ans)
elif money[0] in ['$','¥']:
    if money[0] == '¥':
        ans = eval(money[1:])/6.78
        print("$%.2f"%ans)
    else :
        ans = eval(money[1:])*6.78
        print("¥%.2f"%ans)

人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

人民币和美元间汇率固定为:1美元 = 6.78人民币。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

程序可以接收人民币或美元输入,转换为美元或人民币输出。人民币采用¥符号或RMB表示,美元采用$或USD表示,符号和数值之间没有空格。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

注意:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(1) 人民币和美元间符号在转换中要对等,¥和$相互对应,RMB和USD相互对应,输出结果保留小数点后两位;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(2) 符号在数字的后面;

代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
money = input("")
if money[len(money)-1] in ['B','D']:
    if money[len(money)-1] == 'B':
        ans = eval(money[0:(len(money)-3)])/6.78
        print("%.2fUSD"%ans)
    else :
        ans = eval(money[0:(len(money)-3)])*6.78
        print("%.2fRMB"%ans)
elif money[len(money)-1] in ['$','¥']:
    if money[len(money)-1] == '¥':
        ans = eval(money[0:len(money)-1])/6.78
        print("%.2f$"%ans)
    else :
        ans = eval(money[0:len(money)-1])*6.78
        print("%.2f¥"%ans)

编写程序,由1、2、3、4四个数字组成三位数,每个数字在三位数中只能使用一次,找出其中的全部素数。

正确代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
list1 = []
num = 0
for i in range (1,5) :
    for j in range(1,5) :
        for h in range(1,5) :
            if i != j and j != h and i != h :
                num = i *100 + j * 10 + h
                for k in range(2, num//2+1):
                    if (num % i) == 0:
                        break
                else :
                        list1.append(num)
print(*list1, sep = " ")
#[print(i,end = " ") for i in list1]