问大神们,python问题,跪求大神解答

2024-10-31 16:21:56
有3个网友回答
网友(1):

(1)Command Line,中文翻译为命令行,简单解释为 你最长看到的那个黑色背景的,类似于DOS界面的窗口,用于输入命令的。

(2)不过Python的Command Line和Windows的cmd,不是一回事。详情参考帖子:
Windows的cmd下运行Python脚本,不是在Python的Command Line工具下运行Python脚本

其中,关于Windows的cmd,参见这个帖子:2.2.2.1. cmd简介

(3)import sys
是导入sys模块的。
关于什么是模块,可参考帖子:
【教程】Python中的内置的模块 和第三方的模块

(4)sys.agv[1:]
sys模块有获得执行python脚本时所传递的参数的功能,
此处就是利用这点,通过sys.agv获得对应的参数,
然后再用sys.agv[1:]获得从起始位置索引号为1到最后的那段字符的

(5)所谓字典类型变量
就是 一个 key(键),对应一个value(值)
比如
{"yourName":"hihihi789123"}
其中yourName就是key,键
hihihi789123就是value,值

(6)ditionary,list,set,key等等,
都是属于Python中自带的变量类型
平时使用过程中,需要根据自己的所要实现的功能,定义合适的类型的变量
然后写python代码,去实现对应的功能的。

(7)ditionary,list,set,key 他们和sys,简单说,没关系
因为前者,是变量类型
后者sys,是一个模块

(8)hash在python里面到底是什么意思
我写了很多代码了,貌似暂时还没用到hash。
所以,估计你在今后很长时间内,都很可能暂时用不到hash,可以暂时不用学习。等需要的时候再学。

(9)set((2,3,5))可以loop每一个,但是set([2,3,5]) 不能通过每一个值,为什么
没看懂你要表达啥意思。

(10)argument 在python 里面到底是什么意思,运用起来和以上的有什么关联么
参见(8)的解释,暂时你可以不用关心。

(11)你的代码,就不解释了。因为太乱了。没有缩进。
Python代码是必须有对应的缩进的,表示对应的代码间的逻辑关系的。

关于以上所有的内容,建议你去看:
【整理】如何学习Python + 如何有效利用Python有关的网络资源 + 如何利用Python自带手册(Python Manual)

然后还有什么不懂。
再一点一点问。
不要想一口吃个胖子,否则被撑死了,还都木有消化。

(此处不给贴地址,以上所有帖子,都请自己搜标题,即可找到)

网友(2):

comman-line:可以通过调用本地命令行执行一些必要的计算机本地操作;

import sys:sys是python自带的一个模块,import即导入,导入之后才能调用该模块提供的一些函数;

sys.agv[1:] :指获取sys中agv数组下标为1开始到末尾的数据;

dictionary 中的key即一个字典中索引,比如
name_to_age={'Alice':30,'Bob':25,'Carol':18,'Dave':25,'Ed':30,'Frank':25},Alice、Bob、Carol...(这些名字)为key,他们相对应的value就是30、25、18...(年龄),比如name_to_age['Alice']可以直接取到Alice的年龄30,dictionary中只能通过key获取value,但是不能逆向操作。

后面“
set((2,3,5))可以loop每一个,但是set([2,3,5]) 不能通过每一个值,为什么,argument 在python 里面到底是什么意思,运用起来和以上的有什么关联么


这个我就不多做解释了,因为前面部分才是编程语言中最基本的,那些你理解不了这些解释起来你更迷糊。建议你还是先去学习这些基础知识。

关于代码,python中必须的代码缩进你没有,程序是无法执行的。
大致内容是:

name_to_age={'Alice':30,'Bob':25,'Carol':18,'Dave':25,'Ed':30,'Frank':25}
声明一个dictionary类型的常量name_to_age,其中以name为key,age为value

#start with a new empty dic
age_to_name={}
声明一个dictionary类型的空变量age_to_name

#loop through every name:age pair in the name_to_age
for name in name_to_age:
age=name_to_age[name]
根据name循环从name_to_age取出所有的age并保存到age变量中
#if we've seen this age before, append name to it's list
if(age in age_to_name):
name_list=age_to_name[age]
name_list.append(name)
如果age_to_name中已经存在相同年龄的情况下,则将其名字添加到name_list数组中
(注:这里有个错误,name_list应该在for循环前生命,否则存在大量相同age时的name_list在新一次循环中被重新声明,以致于之前保存的数据丢失)
#age_to_name[age]=name_list
#if this is the first time we've seen this age
#add a new list of [name]
else:
age_to_name[age]=[name]

否则age_to_name中不存在相同年龄的情况下,将name存储到age_to_name对应age的key下

#print both dictionaries
print(name_to_age)
输出:{'Alice':30,'Bob':25,'Carol':18,'Dave':25,'Ed':30,'Frank':25}
print(age_to_name)
输出:{18:'Carol'}(原因是相同age对应name未保存到age_to_name中)

网友(3):

就是把key和value互换一下