Perl与Python编程实践案例解析

50、编写程序读取用户输入的多行文本,然后将每行文本右对齐输出,并打印一个辅助的标尺行

以下是一个使用Python实现的示例代码:

# 存储用户输入的文本行
lines = []
print("请输入多行文本,输入空行结束输入:")

while True:
    line = input()
    if not line:
        break
    lines.append(line)

# 找到最长行的长度
max_length = max(len(line) for line in lines)

# 打印标尺行
ruler = "".join(str(i % 10) for i in range(max_length))
print(ruler)

# 右对齐输出每行文本
for line in lines:
    print(line.rjust(max_length))

这段代码首先读取用户输入的多行文本,直到用户输入空行。然后找到最长行的长度,根据该长度生成一个标尺行。最后,将每行文本右对齐输出。

51、编写一个程序,先让用户输入列宽度,然后让用户输入一些文本行,将这些文本行以用户指定的列宽度进行打印,并打印一个合适长度的标尺行。

以下是一个满足需求的Perl程序示例:

#!/usr/bin/perl
use warnings;
use strict;

# 提示用户输入列宽度
print "请输入列宽度: ";
chomp(my $width = <STDIN>);

# 提示用户输入文本行
print "请输入文本行(输入空行结束):\n";
my @lines;
while (my $line = <STDIN>) {
    chomp($line);
    last if $line eq '';
    push @lines, $line;
}

# 打印标尺行
my $ruler = '';
for (my $i = 1; $i <= $width; $i++) {
    $ruler .= ($i % 10 == 0) ? int($i / 10) : ' ';
}
print $ruler, "\n";

# 以指定列宽度打印文本行
foreach my $line (@lines) {
    for (my $i = 0; $i < length($line); $i += $width) {
        print substr($line, $i, $width), "\n";
    }
}

这个程序首先提示用户输入列宽度,接着让用户输入文本行,输入空行时结束输入。然后程序会打印一个合适长度的标尺行,最后将用户输入的文本行按指定列宽度进行打印。

52、编写一个程序,使用哈希表存储一些人的名字和姓氏,让用户输入一个名字,然后输出该名字对应的全名。

以下是一个使用 Perl 语言实现的示例代码:

#!/usr/bin/perl
use strict;
use warnings;

# 创建一个哈希表存储名字和姓氏
my %name_map = (
    'John' => 'Doe',
    'Jane' => 'Smith',
    'Tom'  => 'Brown'
);

# 提示用户输入名字
print "请输入一个名字: ";
my $first_name = <STDIN>;
chomp($first_name);

# 检查输入的名字是否在哈希表中
if (exists $name_map{$first_name}) {
    my $last_name  = $name_map{$first_name};
    my $full_name  = "$first_name $last_name";
    print "对应的全名是: $full_name\n";
}
else {
    print "未找到该名字对应的信息。\n";
}

上述代码首先创建了一个哈希表 %name_map 来存储名字和姓氏的对应关系。然后提示用户输入一个名字,接着检查该名字是否存在于哈希表中。如果存在,则输出对应的全名;如果不存在,则提示未找到相关信息。

53、编写一个程序,找出环境变量哈希中键的最大长度,并按两列格式输出所有环境变量的键和值。

以下是一个Perl程序示例,用于找出环境变量哈希中键的最大长度,并按两列格式输出所有环境变量的键和值:

#!/usr/bin/perl
use strict;
use warnings;

# 获取环境变量哈希
my %env = %ENV;

# 初始化最大键长度为0
my $max_length = 0;

# 找出最大键长度
foreach my $key (keys %env) {
    my $length = length($key);
    $max_length = $length if $length > $max_length;
}

# 输出环境变量的键和值
foreach my $key (sort keys %env) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值