这是我在StackOverflow上的第一个问题,我搜索了很多网站,却找不到我想要的东西(或者没有注意到).请不要劝阻我:)
此外,这是我与Phyton的第一次编程经历,我很困惑.
我有一个TXT文件,里面有3列用WhiteSpaces隔开.这些列DeptID,CourseID,NumberofStudentsEnrolled.
以下是示例数据:
101 10001 23
102 10002 30
102 10004 5
102 10005 13
105 10006 59
105 10007 77
Run Code Online (Sandbox Code Playgroud)
因此,每当我调用DeptID索引和CourseID索引时,该程序将为我提供一些注册的学生.
示例:NumberofEnrolled("101","10001")应该给出23答案.
我应该尝试使用矩阵吗?因为我有点迷茫.我知道我想要什么,但我不知道它在Phyton中叫什么.
import numpy
depts = []
courses = []
file = open("C:\\Info.txt", "r")
# SPLIT EVERY LINE INTO 3 PIECES : DeptID , CourseID , Enrolled
for line in file:
depts.append(line.split()[0]) # ADD Depts
courses.append(line.split()[1]) # ADD Courses
# CLOSE THE FILE …Run Code Online (Sandbox Code Playgroud) 考虑以下代码 -
#include <iostream>
#include <stdio.h>
const int & retRef() {
return 6;
}
int main()
{
const int& k = retRef();
printf("Value: %d\n", k);
printf("Address: %p\n", &k);
printf("Value: %d\n", k);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是 -
Value: 6
Address: 0x7ffd45bf544c
Value: 32692
Run Code Online (Sandbox Code Playgroud)
为什么在打印变量的地址后值发生了变化k?如果我更换线const int& k = retRef()用const int& k = 6;的输出为预期.
为什么这种行为不同?提前致谢
我只是在C中进行插入排序的教程,我很难理解它的方式!运算符用作do while循环的条件.
条件只是while (!done)但我不明白它是如何知道什么不应该等于变量完成.喜欢的东西while (done==0)会让我更有意义.
我只是开始编码,如果答案非常明显,那就很抱歉!我试过谷歌搜索但我发现很难表达问题...
代码如下:
void insertionSortArray (int arr[])
{
for(int i = 1; i < SIZE; i++)
{
int value = arr[i];
int j = i -1;
int done = 0;
do
{
if (arr[j]>value)
{
arr [j+1] = arr[j];
j - -;
if (j<0)
done = 1;
}
else
done = 1;
} while (!done);
arr [j+1] = value;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!!
我有键列表:list1 =['info', 'websites', 'site']和最终值=“检查”。我正在尝试构建一个递归函数来创建嵌套字典,如下所示:
dict = {'info': {'websites': {'site' : 'check' } } }
Run Code Online (Sandbox Code Playgroud)
我尝试了以下函数,但我的函数没有得到上述输出:
def nested_dict(keys_list, value, check_dict, size):
if size != 1:
print(check_dict)
check_dict[keys_list[0]] = nested_dict(keys_list[1:], value, check_dict, size-1)
else:
print(check_dict)
check_dict[keys_list[0]] = value
return check_dict
Run Code Online (Sandbox Code Playgroud)
我感谢您的帮助!
我有一个程序getopt_get()用来解析命令行参数。我的代码是这样的:
int opt;
int optionIndex;
static struct option longOptions[] = {
{"help", no_argument, NULL, 'h'},
{"test", no_argument, NULL, 't'},
{0, 0, 0, 0}
};
while ((opt = getopt_long(argc, argv, "ht", longOptions, &optionIndex)) != -1) {
switch (opt) {
case 'h':
help();
return 0;
break;
case 't':
init();
test();
return 0;
break;
case '?':
help();
return 1;
break;
default:
printf("default.\n");
}
Run Code Online (Sandbox Code Playgroud)
当我将正确的命令行参数传递给程序时,它运行良好。但是当错误的参数传递给程序时,它会打印出像这样烦人和多余的词。
例如,我将错误的参数“q”传递给程序
$ ./program -q
./program: invalid option -- 'q'
Usage: -h -t
Run Code Online (Sandbox Code Playgroud)
当有错误的参数时,我只希望它运行我的函数help()而不打印任何单词。
./program: invalid …Run Code Online (Sandbox Code Playgroud) 我是 Python 的新手,我试图在文件中找到一个单词并打印“整个”匹配行
exmaple.txt 具有以下文本:
sh version
Cisco IOS Software, 2800 Software (C2800NM-IPBASE-M), Version 12.4(3h), RELEASE SOFTWARE (fc2)
sh inventory
NAME: "2811 chassis", DESCR: "2811 chassis, Hw Serial#: FHK1143F0WY, Hw
NAME: "High Speed Wan Interface card with 16 RS232 async ports(HWIC-16A)",
NAME: "High Speed Wan Interface card with 16 RS232 async ports(HWIC-16A)",
NAME: "16 Port 10BaseT/100BaseTX EtherSwitch"
Run Code Online (Sandbox Code Playgroud)
要求:要查找字符串“Cisco IOS Software”,如果找到,请打印该完整行。在文件中找到“NAME:”,如果找到,则打印该完整行并计算出现次数
代码:
import re
def image():
file = open(r'C:\Users\myname\Desktop\Python\10_126_93_132.log', 'r')
for line in file:
if re.findall('Cisco IOS Software', line) in line: …Run Code Online (Sandbox Code Playgroud) 这是我的 Python 函数之一的摘录:
d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
d_list = []
for key,value in d.iteritems():
temp = [key, value]
d_list.append(temp)
Run Code Online (Sandbox Code Playgroud)
当我打印d_list它时,它目前给了我:
>>>print d_list
[['ANIMAL', ['CAT', 'DOG', 'FISH', 'HEDGEHOG']]]
Run Code Online (Sandbox Code Playgroud)
我如何重写函数,以便它给我:
>>>print d_list
[['ANIMAL', 'CAT'],['ANIMAL', 'DOG'],['ANIMAL', 'FISH'],['ANIMAL', 'HEDGEHOG']]
Run Code Online (Sandbox Code Playgroud) 为什么我的反向函数没有将我的字符串反转回Hello!当我第二次调用我的功能时?
我可以更改使用我的函数多次反转+反转我的字符串?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse(char arr[], int numberOfChars);
int main()
{
char myString[] = "Hello!";
int length = strlen(myString);
for (int i = 0; i < length; i++)
{
printf("%c", myString[i]);
}
printf("\n");
reverse(myString, length);
reverse(myString, length);
getchar();
return 0;
}
void reverse(char arr[], int numberOfChars)
{
for (int i = numberOfChars - 1; i >= 0; i--)
{
printf("%c", arr[i]);
}
getchar();
}
Run Code Online (Sandbox Code Playgroud)